Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> возможна ли утечка памяти?, node.js
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11785
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 11 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 11 дней


Пишу код для node.js.
имеется массив (Array), в него/из него периодически (довольно активно) добавляются/удаляются элементы. Удаляю так:
delete stack[i];

Вопрос такой: возможна ли утечка из-за образования "дырок" со значением undefined в массиве ? Или все норм?
Если утечка возможна, то посоветуйте, как поступить грамотно.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Hello  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 837
Пользователь №: 32378
На форуме: 4 года, 6 месяцев, 25 дней
Карма: 50




Только splice()


--------------------
VPS от 5$, первые 2 месяца - бесплатно.
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Oyeme  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1672
Пользователь №: 16955
На форуме: 7 лет, 9 месяцев, 9 дней
Карма: 94




Вы удалили 10000 элементов и они хранятся в памяти как "не определенные".
(так как значения в массиве не определены и не имеют типа данных)

И так же занимают память.Назвать утечкой определено можно при огромном количестве данных.

Delete - не удаляет элемент из массива,а только присваивает элементу значение undefined.

Находите положения по индексу и сдвигаете массив используя splice

 NewArray = ['a1', 'a2', 'a3', 'a4'];
delete NewArray [0];


Output:
-> [undefined, "a2", "a3", "a4"]

 NewArray.splice(0,1);

console.log(NewArray);


--------------------
Programming: Private lessons via skype £45/h

Частные уроки в Лондоне / удаленно по skype.
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11785
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 11 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 11 дней


Hello
Отлично, спасибо. Вроде то, что нужно.

Oyeme
Цитата
Вы удалили 10000 элементов..и они хранятся в памяти как "не определенные".И так же занимают памят.Назвать утечкой можно при огромных колличестве данныъ.

Конечно, именно о огромных объемах данных речь и идет.

Цитата
Находите положения по индексу и сдвигаете массив используя splice

NewArray = ['a1', 'a2', 'a3', 'a4'];
delete NewArray [0];


Output:
-> [undefined, "a2", "a3", "a4"]

NewArray.splice(0,1);

console.log(NewArray);

уже протестил, все норм.
Всем спасибо, вопрос решен smile.gif


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса