ОО-программирование конфликтует для приложений с задержкой? - PullRequest
1 голос
/ 10 июля 2011

Мне просто интересно, может ли ОО-программирование вызывать проблемы у тех, кто разрабатывает приложения с задержкой?Те, кто пишет код задержки, используют OO-программирование?Было бы интересно узнать, насколько расширяемость ОО-программирования зависит от скорости кода?

Например, я читал, что виртуальные функции в C ++ являются большим «нет, нет» для программистов с задержкой?

Ответы [ 2 ]

2 голосов
/ 10 июля 2011

Подавляющее большинство кода не привязано к процессору. Процессоры смехотворно быстры и проводят большую часть своего времени в пассивном ожидании, пока IO наверстает упущенное. Так что в большинстве нормальных случаев я бы сказал «нет».

Вполне возможно, что у вас есть приложение, которое делает все в памяти, имеет совершенные структуры циклов и т. Д., И у этого мифического зверя вы можете получить чуть чуть больше производительности, отказавшись от виртуальных функций. Но это довольно экстремальный сценарий.

Это будет зависеть от контекста в основном. Как правило, это просто не проблема; Сами java / c # довольно хорошо оптимизированы (по крайней мере, для настольных компьютеров и серверов) и не очень медленные.

1 голос
/ 10 июля 2011

Нет. По сравнению с другими затратами, такими как локальность памяти и согласованность кэша, разработка алгоритмов и языковая база (интерпретатор, VM, native), некоторые виртуальные функции являются довольно тривиальной стоимостью. Принципы ОО, такие как инкапсуляция, являются полностью операциями времени компиляции, и абстракция может быть достигнута бесплатно с помощью универсального программирования. Если вы не идете с ними слишком далеко, что в некоторых случаях совершенно неизбежно в языках, которые просто не имеют общего программирования, или если вы вызываете его в невероятно узком цикле, но в этом случае вы, вероятно, не найдете дешевая альтернатива.

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

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