Я написал приложение, которое имеет несколько пользовательских представлений и обычно рисует много линий и растровых изображений. Поскольку производительность для приложения несколько критична, я потратил много времени на оптимизацию производительности отрисовки.
Теперь монитор активности сообщает, что мое приложение обычно использует около 12% ЦП, а инструмент (профилировщик) говорит, что колоссальные 10% ЦП расходуются на objc_msgSend
(в основном на рисование системных вызовов).
С одной стороны, я рад этому, так как это означает, что мой рисунок примерно такой же быстрый, как и мой, и мои оптимизации достигли огромного успеха. С другой стороны, кажется, подразумевается, что единственное, что все еще использует мой ЦП, это служебная нагрузка Objective C для сообщений (objc_msgSend
). Следовательно, если бы я написал приложение, скажем, в Carbon, его производительность была бы значительно лучше.
Теперь у меня возникает соблазн сделать вывод, что Objective-C - это язык с плохой производительностью, хотя какао кажется очень эффективным, поскольку он, очевидно, может рисовать быстрее, чем Objective-C может отправлять сообщения.
Итак, действительно ли Objective-C - это язык с плохой производительностью? Что вы думаете об этом?