Коротко. Про STL под iOS/MacOS.
Ни на что не претендую.
Несколько по мотивам:
Коротко. Об оптимизации потребления памяти под xCode. Затравочка
Коротко. Сегодня опять рефакторил свой код под xCode
Что хочу сказать?
Я - для себя лично - очередной раз убедился, что "лобовое" использование STL не годиться к написанию программ для работы в режиме 24х7.
Ну на тех платформах, что я знаю.
А именно:
Windows.
MacOs.
iOS.
STL - о конечно - хорош. Более чем.
Лучшей контейнерной библиотеки - я не видел.
Но! Не готов он в "среднем по больнице" к 24х7.
Ибо постоянно перераспределяет и копирует объекты.
И менеджеры памяти "в среднем по больнице" - этого не любят.
Ну и про "кривые руки" - не надо забывать.
Например когда написано:
А не:
Я вот провёл "несколько пасов руками" и достаточно оптимизировал.
Что ещё могу сказать?
Это то, что Obj-C объекты "в среднем по больнице" реализованы "эффективнее", чем C++ объекты.
За счёт View, подсчёта ссылок и кластеризации.
Например замена std::string на NSString (именно NSString, а не NSMutableString) дала ощутимый прирост как производительности, так и экономию памяти "при прочих равных".
Ну вот как-то так.
Ни на что не претендую.
Если у кого-то вдруг есть конкретные вопросы - пишите. Лучше в личку - lulinalex@gmail.com.
Написано несколько сумбурно.
Но сегодня - суббота, а я наверное часов 11-ть отработал. С непростыми задачами.
Да - и ещё я забыл написать, что во многом спасает использование STL со своими специализированными аллокаторами.
Ни на что не претендую.
Несколько по мотивам:
Коротко. Об оптимизации потребления памяти под xCode. Затравочка
Коротко. Сегодня опять рефакторил свой код под xCode
Что хочу сказать?
Я - для себя лично - очередной раз убедился, что "лобовое" использование STL не годиться к написанию программ для работы в режиме 24х7.
Ну на тех платформах, что я знаю.
А именно:
Windows.
MacOs.
iOS.
STL - о конечно - хорош. Более чем.
Лучшей контейнерной библиотеки - я не видел.
Но! Не готов он в "среднем по больнице" к 24х7.
Ибо постоянно перераспределяет и копирует объекты.
И менеджеры памяти "в среднем по больнице" - этого не любят.
Ну и про "кривые руки" - не надо забывать.
Например когда написано:
std::string theValue = theContainer.getRef(); // - тут копирование данных
А не:
const std::string & theValue = theContainer.getRef(); // - тут нет копирования данных
Я вот провёл "несколько пасов руками" и достаточно оптимизировал.
Что ещё могу сказать?
Это то, что Obj-C объекты "в среднем по больнице" реализованы "эффективнее", чем C++ объекты.
За счёт View, подсчёта ссылок и кластеризации.
Например замена std::string на NSString (именно NSString, а не NSMutableString) дала ощутимый прирост как производительности, так и экономию памяти "при прочих равных".
Ну вот как-то так.
Ни на что не претендую.
Если у кого-то вдруг есть конкретные вопросы - пишите. Лучше в личку - lulinalex@gmail.com.
Написано несколько сумбурно.
Но сегодня - суббота, а я наверное часов 11-ть отработал. С непростыми задачами.
Да - и ещё я забыл написать, что во многом спасает использование STL со своими специализированными аллокаторами.
Комментариев нет:
Отправить комментарий