@nodejs_ru

Страница 208 из 2748
Vladimir
17.09.2016
19:29:57
Это не утечки памяти

ZeroFQ
17.09.2016
19:29:59
Ну так в программах на JS же бывают утечки.

А что же это?

Мерлин
17.09.2016
19:30:09
Google
ZeroFQ
17.09.2016
19:30:31
И что тогда вы называете утечками?

Paul
17.09.2016
19:31:05
Уте́чка па́мяти (англ. memory leak) — процесс неконтролируемого уменьшения объёма свободной оперативной или виртуальной памяти компьютера, связанный с ошибками в работающих программах, вовремя не освобождающих ненужные уже участки памяти, или с ошибками системных служб контроля памяти.

Vladimir
17.09.2016
19:31:05
Утечка - это когда есть выделенная памяти, на которую нет указателей

Paul
17.09.2016
19:32:11
Нет, я бы не завязывался в определии на указатели

Vladimir
17.09.2016
19:32:27
Указатель - это абстрактно

Всмысле доступ к этому участку

Мерлин
17.09.2016
19:32:36
Утечка - это когда есть выделенная памяти, на которую нет указателей
С чего это Утечка - это просто выделенный кусок памяти, который не нужен, и который никогда не будет отдан обратно Программа начинает хапать всё больше памяти со временем (особенно если утчеки происходят в цикле) и всё Кобздец

Vladimir
17.09.2016
19:33:04
> @twentydraft котоырй никогда не будет отдан обратно Именно. Но он никгда не будет отдан обратно, только если на него нет указателей

Paul
17.09.2016
19:33:27
Это верно только в простейшем случае. Всякие слабы и прочее проходят мимо.

Мерлин
17.09.2016
19:33:31
В js это на раз два Да и вообще где угодно

Paul
17.09.2016
19:33:57
Да и что такого, если указатель указывает на невыделеннюу память (если есть другой индикатор)?

Roman
17.09.2016
19:34:09
В JS легко насоздавать объектов к которым уже никак не достучаться, но память они жрут. С точки зрения компилятора они есть. И есть указатели на них, но с точки зрения разраба и программы их уже считай нет.

Google
Vladimir
17.09.2016
19:34:24
> @r_vinokurov которым уже никак не достучаться как например?

Roman
17.09.2016
19:34:37
замыкания

Vladimir
17.09.2016
19:34:46
К ним можно дочтучаться

ZeroFQ
17.09.2016
19:34:47
Да понятно уже, что Владимир просто иначе трактует понятие утечки памяти. Смысл спорить?

Vladimir
17.09.2016
19:35:01
Вопрос терминологии, да

Мерлин
17.09.2016
19:35:30
"s/true/false" И можно говорить что угодно, да

Vladimir
17.09.2016
19:35:53
Но в том и смысл, относительно свифта - в нем есть настоящие утечки памяти

Paul
17.09.2016
19:36:15
Можно в двух словах: зачем нужен свифт?

Не холивара ради

Roman
17.09.2016
19:36:24
Насколько я помню в свифте есть какой то аналог GC

Vladimir
17.09.2016
19:36:25
Он лучше Objective-C

Roman
17.09.2016
19:36:28
обрезанный

Paul
17.09.2016
19:36:28
Просто вот я понимаю почему возник раст и что он решает

ZeroFQ
17.09.2016
19:36:28
Так вот да, начали-то мы с целесообразности свифта на сервере.

Мерлин
17.09.2016
19:36:38
Vladimir
17.09.2016
19:36:52
Вот я и говорю - для сервера нужен GC

Paul
17.09.2016
19:36:52
Он лучше Objective-C
С тем же успехом могли продвигать D/Vala или ещё что

Мерлин
17.09.2016
19:37:06
Новый, стильный, молодёжный

Paul
17.09.2016
19:37:08
Смотря для какого

Roman
17.09.2016
19:37:08
Можно в двух словах: зачем нужен свифт?
для разработки под iOS и MacOS, я ознакомливался, мне очень понравился

Google
Vladimir
17.09.2016
19:37:11
Там interoperability, все дела

ZeroFQ
17.09.2016
19:37:13
Новый язык для Apple
Не только. Он счас для всего.

Мерлин
17.09.2016
19:38:04
Не только. Он счас для всего.
Цель то у него вполне конкретная А на сервере он нужен затем, что и js И фронт и бек на одном языке, например

Roman
17.09.2016
19:38:23
создай setInterval на анонимной ф-и, которая замыкается на внешнем контекте, и забудь его убить - с точки зрения терминологии JS народной - это утечка

Paul
17.09.2016
19:38:24
Изоморфность не нужна.

Котяй Негодяй
17.09.2016
19:38:32
И если на объект не осталось указателей, разве сборщик мусора не должен его прибрать?

Roman
17.09.2016
19:39:01
GC в JS отлично работает. Все что есть это косяки разрабов

Paul
17.09.2016
19:39:03
Я бы не называл это утечками

Утечки памяти это скорее выделять огромную строку, делать .slice(0, 5) и утаскивать в замыкание. В итоге в памяти будет вся большая строка.

Вот это утечка

Vladimir
17.09.2016
19:40:37
Это не утечка совсем

Paul
17.09.2016
19:40:56
И чтобы программисту это контроллировать, ему надо теперь костылить аля (' ' + str).slice(1)

Paul
17.09.2016
19:41:12
Это утечка в стандартной библиотеке

А не в языке

Для v8, если не считать std, я утечек не знаю.

Roman
17.09.2016
19:41:46
а можешь сделать пример кода? я не понял. Ну мы утащили, замыкание отработало, контекст грохнулся

Paul
17.09.2016
19:42:01
Нет, ты утащил куда-то эту маленькую подстроку

Google
Paul
17.09.2016
19:42:12
И, как программист, ожидаешь. что там будет всего пять символов

Vladimir
17.09.2016
19:42:30
> Paul И, как программист, ожидаешь. что там будет всего пять символов ЭТо уже деталь реализации

Paul
17.09.2016
19:42:46
Это проблема стандартной библиотеки

Vladimir
17.09.2016
19:43:01
Утечка даже в широком смысле слова - это когда память переживает временной период, который она не должна переживать

Например, запрос

В этом примере такого нет

Мерлин
17.09.2016
19:44:04
Это утечка в стандартной библиотеке
Дык какая разница Всё равно память течет, и gc не спасает Или возьмем тот же пых, в котором коллектор работает исключительно хреново Мы живём в реальном мире, господа, в котором нет идеальных gc, например

Paul
17.09.2016
19:44:31
Ну это не проблема gc, а проблема внутренней реализации строк.

Admin
ERROR: S client not available

Paul
17.09.2016
19:44:40
Я не знаю проблем с GC в v8

Котяй Негодяй
17.09.2016
19:44:58
Ок. Тогда вот какой у меня вопрос:

Мерлин
17.09.2016
19:45:27
Ну это не проблема gc, а проблема внутренней реализации строк.
А я как раз и говорю, что gc никак не влияет на наличие или отсутствие утечек

Roman
17.09.2016
19:45:29
Paul а вот кстати вот эта проблема со sliсe, я правильно понимаю что она будет проявляться в любом движке из более менее известных?

интересно стало

Paul
17.09.2016
19:45:53
А я как раз и говорю, что gc никак не влияет на наличие или отсутствие утечек
Ну, может и влиять. Если gc плохой и просто счётчик ссылок какой-нибудь

Roman
17.09.2016
19:46:06
я бы почитал тогда про это и подобные кейсы

Google
Vladimir
17.09.2016
19:46:23
Да может это течь

Оно просто использует больше памяти, что могло - но это не утечка

Paul
17.09.2016
19:47:01
Ну по определению выше это утечка

Мерлин
17.09.2016
19:47:06
Ну, может и влиять. Если gc плохой и просто счётчик ссылок какой-нибудь
А вы видели идеальный gc? Который умеет разруливать любые ситуации?

Roman
17.09.2016
19:47:12
Оно просто использует больше памяти, что могло - но это не утечка
но в итоге то память освобождается или нет?

Vladimir
17.09.2016
19:47:18
Дп

Да

Просто тебе нужна подстрока, но ретейнится вся строка

Paul
17.09.2016
19:47:44
Эм, ну как нет?

Vladimir
17.09.2016
19:47:48
Неэффективно - да. Утечка - нет

Vladimir
17.09.2016
19:48:15
Этот участок не является ненужным

Roman
17.09.2016
19:48:27
тогда с какого это утечка. В моем понимании утечки страшны тем что память растет непрерывно что в итоге приводит к тормозам и краху программы. Если память не растет, и ресурсы корректно высвобождаются рано или поздно - я не считаю это утечкой

Paul
17.09.2016
19:48:44
Он ненужный. Ибо *неизменяемая* строка это два указателя.

Котяй Негодяй
17.09.2016
19:48:50
Есть терминал самообслуживания. На нём крутится небольшой бэкенд на ноде, который взаимодействует с аппаратной частью, и SPA, которое взаимодействует с удалённым и локальным API. Почитав чат, я начинаю опасаться, что полностью исключить риск утечек как в браузере, так и в локальном API, не получится, и приложение будет периодически виснуть. Так ли это?

Paul
17.09.2016
19:48:58
То, что движок решил не копировать это как раз причина.

Vladimir
17.09.2016
19:49:12
Вот ткаое определение утечки - если для работы программы в течении бесконечного периода требуется конечное количество памяти, то утечки нет

Vladimir
17.09.2016
19:50:11
Из головы

Страница 208 из 2748