Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.08.02;
Скачать: [xml.tar.bz2];

Вниз

Альтернатива Indy? (D 2007)   Найти похожие ветки 

 
Cobalt ©   (2009-04-08 13:00) [0]

Понадобилось скачивать/заливать файлы на ftp.
первая мысль была - возьму Indy. У них еще удобный класс IdURI, распарсивающий адрес на протокол-юзер:пароль@сервер-порт-путь
А потом включил
ReportMemoryLeaksOnShutdown := true;
И вылезли утечки памяти.
а требования к утилите жесткие.

Подскажите, какие есть еще компоненты или библиотеки для инета.
Не хочется изучать с нуля WinInet, и ручками писать все заново...


 
DVM ©   (2009-04-08 13:07) [1]


> А потом включил
> ReportMemoryLeaksOnShutdown := true;
> И вылезли утечки памяти.
> а требования к утилите жесткие.

Текст сюда приведи сообщения об утечках. Его можно скопировать из MessageBox.

Нет там утечек (по крайней мере пока не обнаружено). Там кое что не освобождается при закрытии программы явно, но это роли не играет. т.к. будет прибито системой. В процессе работы утечек нет.
Дело в том. что там в каком то модуле в секции initialization что-то создается, а в finalization оно не уничтожается по какой то причине.


 
Rouse_ ©   (2009-04-08 13:10) [2]


> Нет там утечек (по крайней мере пока не обнаружено).

Есть - новый проект, кладем на форму idFTP, запускаем, закрываем и читаем:

---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:

1 - 12 bytes: TIdThreadSafeInteger x 1

21 - 28 bytes: TIdCriticalSection x 2

---------------------------
OK  
---------------------------


 
Тимохов_   (2009-04-08 13:11) [3]

wininet


 
DVM ©   (2009-04-08 13:12) [4]


> Rouse_ ©   (08.04.09 13:10) [2]

вот об этом я и писал


> Дело в том. что там в каком то модуле в секции initialization
> что-то создается, а в finalization оно не уничтожается по
> какой то причине.


 
Rouse_ ©   (2009-04-08 13:12) [5]


> DVM ©   (08.04.09 13:12) [4]

А это теперь не мемликом называется? :)


 
DVM ©   (2009-04-08 13:12) [6]


> Rouse_ ©   (08.04.09 13:10) [2]

количество неосвобожденных объектов не растет в процессе работы программы


 
Rouse_ ©   (2009-04-08 13:13) [7]

Не важно - достаточно и этих двух.


 
DVM ©   (2009-04-08 13:14) [8]


> Rouse_ ©   (08.04.09 13:12) [5]


> А это теперь не мемликом называется? :)

Любой проект на Delphi в MemProof покажет разного рода проблемы и такие же утечки. Но они разовые, на выходе не освобождаются объекты.
Плохо конечно. но не критично.


 
Rouse_ ©   (2009-04-08 13:20) [9]


> Любой проект на Delphi в MemProof покажет разного рода проблемы
> и такие же утечки. Но они разовые, на выходе не освобождаются
> объекты.

Да вроде не кажет, тьху-тьху :)


 
DVM ©   (2009-04-08 13:24) [10]


> Rouse_ ©   (08.04.09 13:20) [9]

Проверил? А у меня кажет, что я делаю неправильно, абсолютно пустой проект, никаких левых компонентов для делфи нет, форма пустая:

Virtual Memory        02440000       4096  VirtualAlloc(00000000,4096,4096,64)

Текст сообщения оттуда не копируется, но там говорится, что память выделена с пом VirtualAlloc но не освобождена с пом VirtualFree


 
Rouse_ ©   (2009-04-08 13:27) [11]

Дельфя какая?


 
DVM ©   (2009-04-08 13:30) [12]

Delphi 7
MemProof 0.9.4.8

Вот подробнее из лога MemProof-а

       1  Virtual Memory        02470000       4096  VirtualAlloc(00000000,4096,4096,64)
       00421A02   C:\1\Project1.exe
       00472A91   C:\1\Project1.exe
       004728DD   C:\1\Project1.exe
       0045FAFF   C:\1\Project1.exe
       0045FC73   C:\1\Project1.exe
       00403C33   C:\1\Project1.exe
       00403C9A   C:\1\Project1.exe
       7C817062 RegisterWaitForInputIdle  I:\WINDOWS\system32\kernel32.dll


 
DVM ©   (2009-04-08 13:32) [13]


> Rouse_ ©   (08.04.09 13:27) [11]

В D2007 тоже самое


 
Игорь Шевченко ©   (2009-04-08 13:36) [14]

Internet Professional - оно стало бесплатным


 
Rouse_ ©   (2009-04-08 13:41) [15]


> В D2007 тоже самое

Угу, вижу...
Орет на MakeObjectInstance, я сначала на консоли протестил...


 
Сергей М. ©   (2009-04-08 14:00) [16]

{$DEFINE IDFREEONFINAL} при сборке Инди - и всех делов, и утечки как не бывало


 
pasha_golub ©   (2009-04-08 15:25) [17]


> Игорь Шевченко ©   (08.04.09 13:36) [14]
>
> Internet Professional - оно стало бесплатным

Линку можно?


 
Cobalt ©   (2009-04-08 15:45) [18]

Обновился до 10.2.3 - всё ушло
хотя пришлось всё ручками перекомпилировать, нет груп-проекта под 11-ю Дельфю :-(


 
axis_of_evil ©   (2009-04-08 23:07) [19]

ICS?


 
Cobalt ©   (2009-04-08 23:24) [20]


> axis_of_evil ©   (08.04.09 23:07) [19]
>
> ICS?

А там есть аналог IdURI?
даешь ей на вход URI, и он его парсит на всё-всё-всё?

Я понимаю, что самому написать недолго, интересует сам факт наличия многочисленных удобств.


 
DVM ©   (2009-04-09 00:17) [21]


> Cobalt ©   (08.04.09 23:24) [20]


> А там есть аналог IdURI?

Имей в виду ICS сильно отличается от Indy. Идеология совсем другая, к асинхронности еще привыкнуть надо иногда это непросто тому кто привык работать с блокирующим синхронным Indy.


 
Германн ©   (2009-04-09 00:38) [22]


> DVM ©   (09.04.09 00:17) [21]
>
>
> > Cobalt ©   (08.04.09 23:24) [20]
>
>
> > А там есть аналог IdURI?
>
> Имей в виду ICS сильно отличается от Indy. Идеология совсем
> другая, к асинхронности еще привыкнуть надо

К асинхронности привыкать надо!
Использование синхронных методов работы с устройствами, имеющими встроенные механизмы для асинхронной работы, очень часто мешает нормальному функционированию приложений.


 
Anatoly Podgoretsky ©   (2009-04-09 00:50) [23]

> Германн  (09.04.2009 0:38:22)  [22]

У ICS многие методы ходят парами и синхронные, и асинхронные, с сохранением событийной модели.


 
Германн ©   (2009-04-09 01:02) [24]


> Anatoly Podgoretsky ©   (09.04.09 00:50) [23]
>
> > Германн  (09.04.2009 0:38:22)  [22]
>
> У ICS многие методы ходят парами и синхронные, и асинхронные,
>  с сохранением событийной модели.

Не спорю.
Спорю только с отказом от асинхронных методов по причине незнакомства с ними.


 
Eraser ©   (2009-04-09 01:33) [25]

> [22] Германн ©   (09.04.09 00:38)

асинхронный режим больше оправдан при потоковой передаче однородных данных и простом протоколе. если протокол хоть немного сложный, то его реализация на асинхронных сокетах станет очень проблематичной.


 
DVM ©   (2009-04-09 01:56) [26]


> Eraser ©   (09.04.09 01:33) [25]


> и простом протоколе

Точно! Я бы сказал еще при единообразном протоколе, в котором сервер и клиент обмениваются единообразными репликами, которые как правило не цепляются одна за другую и последовательность их не сильно важна.

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


 
Германн ©   (2009-04-09 02:22) [27]


> Eraser ©   (09.04.09 01:33) [25]


> DVM ©   (09.04.09 01:56) [26]
>
>

А я разве спорил с вами?


 
Eraser ©   (2009-04-09 02:34) [28]

> [27] Германн ©   (09.04.09 02:22)

так и я не спорил. просто упомянул нюанс, а то выходит, что асинхронный режим панацея от всех бед, а синхронный на свалку )


 
ZeroDivide ©   (2009-04-09 10:17) [29]

Я как-то давно, помню, разбирался в этом вопросе. Эти утечки появляются только при закрытии приложения. В процессе работы Indy - ничего не утекает. Можно не волноваться. И они, в общем, там нужны... за давностью, я не очень помню зачем, но, вроде, там такая ситуация, что корректное освобождение этих объектов без того, чтобы они не попали в отчет о утечках - невозможно. А менеджер памяти Windows один фиг все почистит после смерти процесса. Короче, память не утечет никуда.


 
Anatoly Podgoretsky ©   (2009-04-09 11:33) [30]

> Германн  (09.04.2009 1:02:24)  [24]

Не совсем, а для выбора, там где действительно нужна синхронная работа можно выбрать синхронный метод.
И обработать нужные события.


 
Cobalt ©   (2009-04-09 15:13) [31]

интересно, а с D2009 Indy какой версии идёт?


 
Eraser ©   (2009-04-09 15:14) [32]

> [31] Cobalt ©   (09.04.09 15:13)

10, но кстати они его немного совершенствуют все таки. баги правят.


 
Индеец ©   (2009-06-03 08:54) [33]

Все утечки с Fastmm4 решаются включением в IdCompilerDefines.inc
USEFASTMM4



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2009.08.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.005 c
2-1244224996
Nekroraise
2009-06-05 22:03
2009.08.02
цвет TColor в формат цвета фотошопа(и не только)..


15-1243542627
Юрий
2009-05-29 00:30
2009.08.02
С днем рождения ! 29 мая 2009 пятница


11-1204559200
MiniQ9
2008-03-03 18:46
2009.08.02
FreePascal - Linux - KOL, как подружить?


15-1244017354
oldman
2009-06-03 12:22
2009.08.02
Как узнать предыдущий активный контрол?


2-1244453232
nickrus
2009-06-08 13:27
2009.08.02
Indy vs. TClientSocket





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский