Muscle myosin is a non-processive molecular motor generates mechanical work when cooperating in large ensembles. During its cyle, each individual motor keeps attaching and detaching from the actin filament. The random nature of attachment and detachment inevitably leads to losses and imposes theoretical limits on the energetic efficiency. Here, we numerically determine the theoretical efficiency limit of a classical myosin model with a given number of mechano-chemical states. All parameters that are not bounded by physical limits (like rate limiting steps) are determined by numerical efficiency optimization. We show that the efficiency is limited by the number of states, the stiffness and the rate-limiting kinetic steps. There is a trade-off between speed and efficiency. Slow motors are optimal when most of the available free energy is allocated to the working stroke and the stiffness of their elastic element is high. Fast motors, on the other hand, work better with a lower and asymmetric stiffness and allocate a larger fraction of free energy to the release of ADP. Overall, many features found in myosins coincide with the findings from the model optimization: there are at least 3 bound states, the largest part of the working stroke takes place during the first transition, the ADP affinity is adapted differently in slow and fast myosins and there is an asymmetry in elastic elements.