
Vladimir
18.08.2016
01:32:45
формально - массив это просто объект

Paul
18.08.2016
01:32:53
https://gist.github.com/DmitrySoshnikov/593e19f60df257f2119fad2e0431b617

Vladimir
18.08.2016
01:33:35
такое на прокси надо делать

KlonD90
18.08.2016
07:02:34

Google

Никита
18.08.2016
07:42:04

KlonD90
18.08.2016
07:48:04
Map что-то грустный. Есть ли структура с быстрым удалением по середине?

Vladimir
18.08.2016
07:57:51

Дмитрий
18.08.2016
07:58:59
Map что-то грустный. Есть ли структура с быстрым удалением по середине?
R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]

KlonD90
18.08.2016
08:01:16
И?
Чем оно быстрее /лучше?

Никита
18.08.2016
08:46:54
В них ключами могут быть не только строки.

KlonD90
18.08.2016
08:47:45

Никита
18.08.2016
08:48:04
а?

KlonD90
18.08.2016
08:48:08
про Map я знаю - проверял - не подходит. Слишком медленна реализация
возможно стоит написать конечно свой Map
с нужной мне балансировкой

Google

Ярослав
18.08.2016
08:52:42
а что тебе нужно?

KlonD90
18.08.2016
08:58:34
Быстрое удаление из середины(хотя скорее будет ближе к началу)

hamper ?
18.08.2016
09:06:15
А чем объекты плохи? В них удаленные элементы память не занимают же.

KlonD90
18.08.2016
09:06:46
паммять не занимают - но деоптимизируют
ну и на самом деле и то и другое при удаление конечно только помечается к гц на расмотрение. ну вообщем-то можно и объекты использовать, но удалять с середины все равно нужно перемещения делать O(n/2) раз в ближайшую сторону

Amon Bower
18.08.2016
09:09:47
Люди, такой вопрос
Я писал игру простенькую на ноде (на сокетах). И игроков хранил в массиве с их данными позиций Х и Y
но когда добавляется 1-2 юзера, память засорялась
такие данные надо хранить онли в бд?

hamper ?
18.08.2016
09:12:45

KlonD90
18.08.2016
09:13:27

Amon Bower
18.08.2016
09:13:42
в файлах

hamper ?
18.08.2016
09:13:52

KlonD90
18.08.2016
09:14:52

Anton
18.08.2016
09:15:16
Сделать свой HashMap. Сделать свои деревья поиска. Сделать свой deque

hamper ?
18.08.2016
09:15:32

Ярослав
18.08.2016
09:16:05

Anton
18.08.2016
09:16:18
Я и жаловался :P

Google

マイク
18.08.2016
09:16:18

hamper ?
18.08.2016
09:16:29
вообще от задачи все зависит
splice
он дороговат в плане скорости работы

Ярослав
18.08.2016
09:16:45

KlonD90
18.08.2016
09:16:50

マイク
18.08.2016
09:16:54

KlonD90
18.08.2016
09:17:07

hamper ?
18.08.2016
09:18:07
Куда деоптимизирует? элементы и так хранятся по хешам а не по ключам

Yan?
18.08.2016
09:18:46
по-моему splice самый адекватный метод

hamper ?
18.08.2016
09:19:09
если скорость не важна и нужны именно массивы то да

Danila
18.08.2016
09:19:26
чуваки, а за вопрос по mysql в этом чатике меня не побьют? в качестве оправдания могу сказать, что использую его в node.js =)

KlonD90
18.08.2016
09:19:45

hamper ?
18.08.2016
09:20:58

KlonD90
18.08.2016
09:21:25
https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#52-the-object-being-iterated-is-not-a-simple-enumerable

Никита
18.08.2016
09:22:36
И всё-таки, где вы наблюдали проблемы по скорости у Map?
На свежих версиях.
Гонять туда-сюда объекты с двумя фиксированными полями — объекты быстрее
хранить-добавлять-удалять кучу всего надолго — мапы быстрее
Ну, в тех тестах, что я видел.

Google

hamper ?
18.08.2016
09:24:09
у меня обычно есть в коде намного более медленные операции что бы на скорость хеш таблиц внимание обращать

KlonD90
18.08.2016
09:27:47
это как раз про массив. map замедляется явно со временем у меня типа есть id request’а же и я его посылаю типа по 5к за раз элементов по сути в мапе создаю дальше удаляю как приходит ответ по сути. со временем спустя миллион наверное удалений оно замедляется
есть подозрение что все таки пока гц не постучит в ворота хранится там какая-то таблица просто с пометками к удалению
надо будет изучить поподробнее как работает удаление. я подозреваю что в моем конкретном случае можно сделать собственный map шустрый и веселый

hamper ?
18.08.2016
09:30:16
WeakMap шустрее мапа но в нем нельзя получить список всех элементов

KlonD90
18.08.2016
09:30:33
спасибо - надо будет попробовать

Vladimir
18.08.2016
09:31:34

Admin
ERROR: S client not available

hamper ?
18.08.2016
09:32:48
бум, и код неоптимизируемый
да, но на сколько часто ты в реальных проектах встречал заметное влияние от этого? я вот раньше тоже и for .. in .. избегал потому что он не оптимизируемый, потом просто забил на это и не заметил разницы

KlonD90
18.08.2016
09:33:05
ну не код, а именно эта структура. там если больше 1ой тысячи элементов что ли оно проваливается в hash table mode

hamper ?
18.08.2016
09:34:48
у меня там больше 1000 элементов, деркается она по несколько тысяч раз в секунду, раз в несколько минут перебирается полностью и вычищаются элементы с истекшим ttl, просадки в скорости не замечал

KlonD90
18.08.2016
09:36:19
ну попробуй сравнить с другими решениями
просто это может быть не узким местом - но не факт что самым быстрым решением

hamper ?
18.08.2016
09:36:41
если что то надо прямо совсем оптимизировать то мне проще это на го переписать... он в некоторых местах оптимальнее работает

Vladimir
18.08.2016
09:38:26

hamper ?
18.08.2016
09:38:59

KlonD90
18.08.2016
09:44:51

Google

Vladimir
18.08.2016
09:55:51
@klond90 тебе нужен кастомный hashtable, без вариантов
Будет за O(1) все

KlonD90
18.08.2016
09:56:42
Как пример что взять?

Vladimir
18.08.2016
10:00:06
Речь ведь все ещё про тарантул?

KlonD90
18.08.2016
10:00:39
да да я все еще не разогнал ту очередь но нашел инетресный вариант

Vladimir
18.08.2016
10:02:05
Смотри, берёшь массив фиксированной длины N
Из предположения, что число исходящих запросов в нормальных ситуациях будет <N
В качестве хэша берёшь %N
В каждой ячейке массива - голова односвязного списка

KlonD90
18.08.2016
10:06:40
да я что-то такое продумывал надо посмотреть. 10кратный прирост может быть спокойно на длинной очереди

Vladimir
18.08.2016
10:07:05
Прирост чего?

KlonD90
18.08.2016
10:08:59
поиска/удаления

Vladimir
18.08.2016
10:09:54
Ну вопрос, насколько это повлияет на общую производительность

KlonD90
18.08.2016
10:12:04
оно начинает быть узким местом когда по 5к запросов за раз уходит

Никита
18.08.2016
10:33:35
@vkurchatkin предложил им явно ничего не ломающий метод: https://github.com/gulpjs/gulp/issues/1640#issuecomment-240683358
Если уж и это ему не понравится, то я даже не знаю.
*забыл запятую, в смысле это я обращаюсь к @vkurchatkin и я предложил
Что думаешь?

Ҫѐҏӗѫӑ
18.08.2016
10:45:49
парни, я иногда пропускаю много тут. речь о том, что gulp тормозит ноду из-за vinyl-fs, который поломается (в ноджс 7?), я правильно понимаю??

Damir
18.08.2016
10:49:54
/лучше