Есть ли будущее у DELPHI?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.43] |
|
|
Правила раздела:
| Страницы: (245) « Первая ... 173 174 [175] 176 177 ... 244 245 ( Перейти к последнему сообщению ) |
Есть ли будущее у DELPHI?
|
Сообщ.
#2611
,
|
|
|
|
А чего ты выдираешь из контекста предложения одно словосочетание? Ты бери уже с начала предложения Цитата jack128 @ A memory leak, in computer science (or leakage, in this context), occurs when a computer program acquires memory but fails to release it back to the operating system.[1] In object-oriented programming, a memory leak may happen when an object is stored in memory but cannot be accessed by the running code.[2] A memory leak has symptoms similar to a number of other problems (see below) and generally can only be diagnosed by a programmer with access to the program source code. |
|
Сообщ.
#2612
,
|
|
|
|
Черт не успеваю читать Астарота. Там было что-то интересное?
|
|
Сообщ.
#2613
,
|
|
|
|
А вот в этом коде, есть мем лик?
![]() ![]() int* SomeFunction() { return new int[1000000]; } int main() { int* p = SomeFunction(); ... Something(p); ... return 0; } Предвижу ответ: Конечно же нету. |
|
Сообщ.
#2614
,
|
|
|
|
Цитата D_KEY @ Черт не успеваю читать Астарота. Там было что-то интересное? Как обычно |
|
Сообщ.
#2615
,
|
|
|
|
KILLER, мы о языках со сборщиком мусора.
|
|
Сообщ.
#2616
,
|
|
|
|
Цитата korvin @ Нет, утечка образуется, когда объект становится в принципе не достижим, например если имеем подсчет ссылок без контроля циклических зависимостей. Например, в случае C# - там, ЕМНИП, отписка от события происходит по объекту. Поэтому, если ты потерял ссылку на объект, то и отписаться не сможешь - ты не имеешь доступа к объекту, так почему это не утечка? |
|
Сообщ.
#2617
,
|
|
|
|
Цитата D_KEY @ Из того, что они не используются. Просто ссылка висит в каком-нибудь контейнере без надобности с т.з. логики. Прочит уже про weak reference. Цитата If the cache can grow so large as to cause problems, this may be a programming or design error, but is not a memory leak as the information remains nominally in use. Нет. Разве я задавал какие-то вопросы? Цитата D_KEY @ Ведь проблема утечек в случае GC как раз и связана с тем, что GC не в состоянии проникнуть в мозг и понять, что хотел программист. Обсуждаемый пример со списком подписчиков к этому не относится. Не похожа, циклические объекты ниоткуда больше недоступны, в отличие от. А проблема циклических ссылок в mark&sweep GC отсутствует например и слабые ссылки тут не при чем. |
|
Сообщ.
#2618
,
|
|
|
|
Цитата D_KEY @ KILLER, мы о языках со сборщиком мусора. Я понимаю, но если там это не мемори лик, то тут тоже можно сказать это не будет являться утечкой памяти, почему нет? Предположим что GC - это менеджер памяти ОС. Просто ситуации практически идентичны, там он забыл от события отписаться, и у него до конца выполнения приложухи, остался указатель на память, которую не туда и не сюда, ее и ГЦ не прибьет и сама не отвалица, а тут таже ситуация с удалением. |
|
Сообщ.
#2619
,
|
|
|
|
Цитата korvin @ Не похожа, циклические объекты ниоткуда больше недоступны, в отличие от. Что это меняет, если объекты не будут удалены? |
|
Сообщ.
#2620
,
|
|
|
|
Цитата D_KEY @ Что это меняет, если объекты не будут удалены? Да все это меняет. Он тебе вдупляет, что он специально написал говнокод, просто так, вдруг ему эта память понадобиться ? А в друг нет, ну и хер с ней, 100 кб туда, 100 сюда, не особо и много This is Java baby!!! |
|
Сообщ.
#2621
,
|
|
|
|
Цитата MyNameIsIgor @ Например, в случае C# - там, ЕМНИП, отписка от события происходит по объекту. Поэтому, если ты потерял ссылку на объект, то и отписаться не сможешь - ты не имеешь доступа к объекту, так почему это не утечка? Я могу удалить весь список например, если он мне более не нужен =) Или по каким-то признакам выявить ненужных подписчиков, это в принципе решаемо. В случае утечки же я не могу сделать уже вообще ничего и даже удаление всего списка не решит проблему. |
|
Сообщ.
#2622
,
|
|
|
|
Цитата korvin @ Я могу удалить весь список например, если он мне более не нужен =) Вот тогда утечки не будет. А если ты ничего этого не делаешь - у тебя есть фактическая утечка. И никакие википедии тебе не помогут от этого избавиться |
|
Сообщ.
#2623
,
|
|
|
|
Цитата korvin @ Я могу удалить весь список например, если он мне более не нужен =) Да ты можешь это сделать, но это уже будет скорее заплаткой. Т.к. изначально речь велась о том, что программист забыл отписаться от уведомления, забыл, тоесть это уже утечка ресурса! Ты понимаешь? Забыл он сделать это, значит он думает что в его коде все ништяк и совсем не подозревает о том, что у него в списке висит ссылка, которая жрет только зря память, а значит очищать его он не будет! |
|
Сообщ.
#2624
,
|
|
|
|
Цитата KILLER @ Ладно, зайдем с другой стороны, вот это мем лик или нет? ![]() ![]() int main() { int* p = new int[10000]; //! Work with p ... ... return 0; } А если я ее глобальной сделаю, это будет мемори лик? в AmigaOS была бы 100% утечка Цитата Where running on an operating system that does not automatically release memory on program termination. Often on such machines if memory is lost, it can only be reclaimed by a reboot, an example of such a system being AmigaOS. Т.е. зависит от действий ОС по завершении программы. Если она освободит память, то в чем ты видишь утечку? |
|
Сообщ.
#2625
,
|
|
|
|
Цитата korvin @ Нет, утечка образуется, когда объект становится в принципе не достижим, например если имеем подсчет ссылок без контроля циклических зависимостей. Нет, не надо рассматривать это определение буквально, иначе с этой точки зрения в Delphi тоже утечек быть не может, т.к. чисто теоретически все ссылки на выделенную память храняться в структурах менеджера памяти и тоже теоретически достижимы. Но фактически то, что описал Jack - утечка, ибо этот ресурс фактически уже никто не освободит |