Size: a a a

2016 June 07

S

Snusmumriken in pro.lua
Сиплюсплюсочка не так совершена.
источник

М

Мерль🛠 in pro.lua
Snusmumriken
Сиплюсплюсочка не так совершена.
прост в сишечку нормальных eigen не завезли
И ещё кучу матановых библиотек
источник

М

Мерль🛠 in pro.lua
Snusmumriken
Ну да, за столько лет, сишечка была доведена почти до совершенства.
Но меня все равно интересует, что ты тут делаешь, и где твоя идеально оптимизированая операционная система :3
Как-будто от того, что мне требуется время от времени писать реалтаймовый код, я должен не любить скриптолапшу
источник

S

Snusmumriken in pro.lua
Ты слишком громко вопишь о скорости :3
источник

М

Мерль🛠 in pro.lua
Тут речь не о скорости, а о банальной гигиене кода :3

Если ты привык говнокодить в таких мелочах, то значит будешь говнокодить и по-крупному
источник

S

Snusmumriken in pro.lua
Ущербная экстраполяция, прости.
Это вообще ничего не значит.
источник

М

Мерль🛠 in pro.lua
Это не экстраполяция, это личный опыт (
источник

S

Snusmumriken in pro.lua
Только твой.
Или ты покрываешь всех людей?
Тем не менее. Стоит повторить собаку.
источник

S

Snusmumriken in pro.lua
Да. Кстати. Твой метод жрёт в 32 раза больше памяти.
Обычная таблица на 100к элементов занимает 2мб, твой супер-список на 100к занимает 64мб памяти. Плюс ты лаконично обходишь время инициализации своего супер-списка, в сравнении с инициализацией обычной таблицы.
Где-то тут надувательство.
источник

S

Snusmumriken in pro.lua
Он быстр, но его применение.. очень специфично. Или для очень маленьких списков (но тогда теряется разница прироста скорости), или для промышленных серверов, где докупить лишние 64гб - не проблема.
Нет, не вижу ничего плохого, используй это.
Но в игрушках на телефон я подключу ffi и стороннюю либу с плюсовыми динамическими векторами, в которые можно запихнуть структуру (для хранения огромной тайловой карты с кучей параметров для каждого тайла, например).

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

S

Snusmumriken in pro.lua
Я посчитал время выполнения вместе с инициализацией.
Время на моём нетбуке:
твой список: 4.6с
обычная таблица: 21.8с
Разница уже всего лишь в пять раз.
Хм.
источник

M

Maxx in pro.lua
list 100000 samples, average 0.043713 deviation 0.002519
array 100000 samples, average 2.043139 deviation 2.032166
ghost 100000 samples, average 0.024545 deviation 0.002318

похоже, можно ещё быстре, если вообще ничего не удалять =)
источник

S

Snusmumriken in pro.lua
В памяти все равно висит куча фигни лишней.
Попробуй прямо замерить время.
Особенно вместе с инициализацией. И увеличить размер обоих списков до сотни миллионов значений (советую поставить на ночь или уйти чай пить).
источник

M

Maxx in pro.lua
https://gist.github.com/xogg/3e9f642e0bd6caf8b9ff348636c1204e
всё честно: за один проход создаёшь массив нужных, неудалённых индексов, и делаешь его проксёй к исходному массиву.
источник

M

Maxx in pro.lua
сотню миллионов я буду ждать до утра наверное, и не факт, что до следующего =)
источник

S

Snusmumriken in pro.lua
Я попробую на I7, разбив на корутины :3
источник

М

Мерль🛠 in pro.lua
Maxx
https://gist.github.com/xogg/3e9f642e0bd6caf8b9ff348636c1204e
всё честно: за один проход создаёшь массив нужных, неудалённых индексов, и делаешь его проксёй к исходному массиву.
Вот кстати хорошая идея в случае с таблицами в качестве элементов
источник

S

Snusmumriken in pro.lua
х32 перерасход памяти, не забывай.
источник

M

Maxx in pro.lua
если задачу решить важнее памяти, то сойдёт =)
источник

М

Мерль🛠 in pro.lua
Maxx
https://gist.github.com/xogg/3e9f642e0bd6caf8b9ff348636c1204e
всё честно: за один проход создаёшь массив нужных, неудалённых индексов, и делаешь его проксёй к исходному массиву.
Хмм
Может даже есть смысл сделать что-то типа слайсов
источник