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