Anonymous
обрезанный
Loyd
Просто вот я понимаю почему возник раст и что он решает
Skeptic
Так вот да, начали-то мы с целесообразности свифта на сервере.
Мерль
Vladimir
Вот я и говорю - для сервера нужен GC
Мерль
Новый, стильный, молодёжный
Loyd
Смотря для какого
Vladimir
Там interoperability, все дела
Anonymous
Мерль
Не только. Он счас для всего.
Цель то у него вполне конкретная
А на сервере он нужен затем, что и js
И фронт и бек на одном языке, например
Anonymous
создай setInterval на анонимной ф-и, которая замыкается на внешнем контекте, и забудь его убить - с точки зрения терминологии JS народной - это утечка
Loyd
Изоморфность не нужна.
Anonymous
И если на объект не осталось указателей, разве сборщик мусора не должен его прибрать?
Vladimir
Anonymous
GC в JS отлично работает. Все что есть это косяки разрабов
Loyd
Я бы не называл это утечками
Loyd
Утечки памяти это скорее выделять огромную строку, делать .slice(0, 5) и утаскивать в замыкание. В итоге в памяти будет вся большая строка.
Loyd
Вот это утечка
Vladimir
Это не утечка совсем
Loyd
И чтобы программисту это контроллировать, ему надо теперь костылить аля (' ' + str).slice(1)
Anonymous
Loyd
Это утечка в стандартной библиотеке
Loyd
А не в языке
Loyd
Для v8, если не считать std, я утечек не знаю.
Anonymous
а можешь сделать пример кода? я не понял. Ну мы утащили, замыкание отработало, контекст грохнулся
Loyd
Нет, ты утащил куда-то эту маленькую подстроку
Loyd
И, как программист, ожидаешь. что там будет всего пять символов
Vladimir
> Paul
И, как программист, ожидаешь. что там будет всего пять символов
ЭТо уже деталь реализации
Loyd
Это проблема стандартной библиотеки
Vladimir
Утечка даже в широком смысле слова - это когда память переживает временной период, который она не должна переживать
Vladimir
Например, запрос
Vladimir
В этом примере такого нет
Loyd
Нет никаких shrink_to_fit из раста или крестов.
Loyd
Мерль
Это утечка в стандартной библиотеке
Дык какая разница
Всё равно память течет, и gc не спасает
Или возьмем тот же пых, в котором коллектор работает исключительно хреново
Мы живём в реальном мире, господа, в котором нет идеальных gc, например
Loyd
Ну это не проблема gc, а проблема внутренней реализации строк.
Loyd
Я не знаю проблем с GC в v8
Anonymous
Ок. Тогда вот какой у меня вопрос:
Anonymous
Paul а вот кстати вот эта проблема со sliсe, я правильно понимаю что она будет проявляться в любом движке из более менее известных?
Anonymous
интересно стало
Loyd
Anonymous
я бы почитал тогда про это и подобные кейсы
Loyd
Loyd
В monkey вроде норм*
Vladimir
Да может это течь
Vladimir
Оно просто использует больше памяти, что могло - но это не утечка
Loyd
Ну по определению выше это утечка
Мерль
Vladimir
Anonymous
Vladimir
Дп
Vladimir
Да
Vladimir
Просто тебе нужна подстрока, но ретейнится вся строка
Loyd
Эм, ну как нет?
Vladimir
Неэффективно - да. Утечка - нет
Loyd
Loyd
> ненужные уже участки памяти
Vladimir
Этот участок не является ненужным
Anonymous
тогда с какого это утечка. В моем понимании утечки страшны тем что память растет непрерывно что в итоге приводит к тормозам и краху программы. Если память не растет, и ресурсы корректно высвобождаются рано или поздно - я не считаю это утечкой
Loyd
Он ненужный. Ибо *неизменяемая* строка это два указателя.
Anonymous
Есть терминал самообслуживания. На нём крутится небольшой бэкенд на ноде, который взаимодействует с аппаратной частью, и SPA, которое взаимодействует с удалённым и локальным API. Почитав чат, я начинаю опасаться, что полностью исключить риск утечек как в браузере, так и в локальном API, не получится, и приложение будет периодически виснуть. Так ли это?
Loyd
То, что движок решил не копировать это как раз причина.
Vladimir
Вот ткаое определение утечки - если для работы программы в течении бесконечного периода требуется конечное количество памяти, то утечки нет
Loyd
Anonymous
Есть терминал самообслуживания. На нём крутится небольшой бэкенд на ноде, который взаимодействует с аппаратной частью, и SPA, которое взаимодействует с удалённым и локальным API. Почитав чат, я начинаю опасаться, что полностью исключить риск утечек как в браузере, так и в локальном API, не получится, и приложение будет периодически виснуть. Так ли это?
я на ноде проблему утечек в рамках ограниченного времени решал влоб - перезапускал процессы, а данные шарил в стораджах, то есть получал типа stateless
Loyd
Vladimir
Из головы
Loyd
Я дал определение. По нему это утечка. Точка
Vladimir
Но вроде внятно
Дима
Дима
Но абстрактно)
Loyd
Ну, вообще определение мне понавилось твоё, да
Anonymous
Дима
См. проблему останова
Loyd
Но на практике утечкой всё равно назовут случай со строками, если будет заметно.
Anonymous
но да, у меня не было утечек в их определении, мне просто было некогда искать где у меня не чистятся ссылки