История изменений
Исправление segfault, (текущая версия) :
я к тому, что констант в программе вообще не должно быть.
Так... присвоения не нужны, константы не нужны... сразу скажи, что еще ненужно - мне чисто чтоб поржать.
тут не нужно придумывать. Всё уже придумано до нас.
Ну ладно, перефразирую: лучше б _нашел_ красивое решение без повторного присвоения
Что-то я не пойму, как твои SP освобождают память, которую выделил кто-то другой? Это же фундаментальный принцип: кто выделял память, тот и освободить должен!
Стандартным деаллокатором. Никаких подобных принципов не слышал. Может, это тоже твоя личная задумка?
А когда счётчик увеличивается? А почему счётчик не инкапсулирован в SP?
Увеличивается при создании нового SP на объект. А счетчик должен быть привязан к объекту или той области памяти, в которой он размещен, а не к указателю на нее, коих может быть много. Вот инкремент/декремент этого счетчика - да, инкапсулирован в SP.
это пример для лучшего понимания.
Вот и я привел формулы O(n) и O(log(n)) для лучшего понимания, но получил только непонимание. Если совсем на пальцах - то алгоритмы, выигрывающие по времени на больших объемах данных, как правило, проигрывают в производительности на малых входах.
я говорил про массив из 1000000, и из 1000000000. Откуда ты 20 взял?
У меня массив из максимум, 20 элементов. Если что, это идентификаторы плагинов. Их не может быть 1000000.
Факт заключается в том, что список максимов - это общий алгоритм
Еще раз: одна задача, даже такая тривиальная как поиск максимума, может иметь несколько алгоритмов. Какой из них является «общим»? И если я воспользовался не так называемым «общим», каким-нибудь другим - что в этом плохого?
Проблема в том, что возможно более правильное решение - изменять максимум не проверяя весь список, а в момент _изменения_ списка.
Вызывать мьютекс при каждом изменении, вместо того, чтобы воспользоваться тем, что уже защищает ресурс «лог»? Нет, это не есть более правильное решение.
А возможно, тебе тут надо два списка хранить - один по порядку, как уже есть, а второй по этому максимуму.
Написать кучу кода, возможно, небезглючного. Накладные расходы превысят время выполнение всей текущей операции логгирования - и все ради чего?
Исходная версия segfault, :
я к тому, что констант в программе вообще не должно быть.
Так... присвоения не нужны, константы не нужны... сразу скажи, что еще ненужно - мне чисто чтоб поржать.
тут не нужно придумывать. Всё уже придумано до нас.
Ну ладно, перефразирую: лучше б _нашел_ красивое решение без повторного присвоения
Что-то я не пойму, как твои SP освобождают память, которую выделил кто-то другой? Это же фундаментальный принцип: кто выделял память, тот и освободить должен!
Стандартным деаллокатором. Никаких подобных принципов не слышал. Может, это тоже твоя личная задумка?
А когда счётчик увеличивается? А почему счётчик не инкапсулирован в SP?
Увеличивается при создании нового SP на объект. А счетчик должен быть привязан к объекту или той области памяти, в которой он размещен, а не к указателю на нее, коих может быть много. Вот инкремент/декремент этого счетчика - да, инкапсулирован в SP.
это пример для лучшего понимания.
Вот и я привел формулы O(n) и O(log(n)) для лучшего понимания, но получил только непонимание. Если совсем на пальцах - то алгоритмы, выигрывающие по времени на больших объемах данных, как правило, проигрывают в производительности на малых входах.
я говорил про массив из 1000000, и из 1000000000. Откуда ты 20 взял?
У меня массив из максимум, 20 элементов. Если что, это идентификаторы плагинов. Их может быть 1000000.
Факт заключается в том, что список максимов - это общий алгоритм
Еще раз: одна задача, даже такая тривиальная как поиск максимума, может иметь несколько алгоритмов. Какой из них является «общим»? И если я воспользовался не так называемым «общим», каким-нибудь другим - что в этом плохого?
Проблема в том, что возможно более правильное решение - изменять максимум не проверяя весь список, а в момент _изменения_ списка.
Вызывать мьютекс при каждом изменении, вместо того, чтобы воспользоваться тем, что уже защищает ресурс «лог»? Нет, это не есть более правильное решение.
А возможно, тебе тут надо два списка хранить - один по порядку, как уже есть, а второй по этому максимуму.
Написать кучу кода, возможно, небезглючного. Накладные расходы превысят время выполнение всей текущей операции логгирования - и все ради чего?