Считается ли плохой практикой писать код c в framework-c / cocoa? - PullRequest
6 голосов
/ 30 ноября 2010

Я пишу код Objective-C, который будет общедоступным. Код в основном состоит из хорошо известных алгоритмов, которые выиграют от оптимизации. Я планирую написать большую часть кода на C, чтобы уменьшить накладные расходы на создание объектов и сборку мусора. Это считается плохой практикой?

Ответы [ 4 ]

11 голосов
/ 30 ноября 2010

Нет, это не так. На самом деле это делается довольно часто.

Обычно это происходит, когда требуется более критичный ко времени код для ускорения выполнения (при прочих равных вызов функции C происходит быстрее, чем метод Objective-C).

Тем не менее, в некоторых других случаях может быть лучше написать функции на C.

Помните, что Objective-C является надмножеством C. Все, что может сделать C, может делать Objective-C, и не следует считать плохим выполнение всего, что может сделать C. Могут быть случаи, когда делать что-то не рекомендуется, но в любом случае.

0 голосов
/ 23 марта 2011

Существует множество случаев, когда модель ОО, особенно с одной отправкой, просто не имеет смысла. Для общей функции не может быть четкого предпочтительного «получателя». Я бы предпочел язык, который поддерживает универсальные функции для нескольких диспетчеризаций, поскольку такой язык поддерживает как то, что большинство людей считает ОО, так и многое другое, а также полностью поддерживает обычные функции в стиле Си.

0 голосов
/ 01 декабря 2010

Нет, нет, многие из собственных платформ Apple в основном C, как Core Graphics или Accelerate.C очень хорош для функций, которые вы будете использовать много, и вам нужно быстро работать, например, математические функции.

0 голосов
/ 30 ноября 2010

Преждевременная оптимизация - корень всего зла

Является ли это хорошей практикой или нет, полностью зависит от применения. В большинстве случаев я бы сказал, что сначала запишите его в Objective-C, а затем используйте профилировщик для оптимизации, если он слишком медленный.

Однако есть случаи, когда вы знаете, что вам понадобится выполнить оптимизацию, например, если вы пишете интерпретатор языка или эмуляцию процессора. В тех случаях (и в случаях, когда профилирование показывает узкое место), совершенно нормально писать чистый C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...