Size: a a a

2020 December 10

AZ

Andrey Zubov in Delphi & Lazarus
Dmitry Belkevich
мы от встроенного как раз отказались. есть несколько проблем:
1. на 32х можно легко нарваться на oom
2. баг в зип или 7z либе приводил к краху всего процесса. внешний бинарь работает намного стабильнее
у меня видимо не настолько большие архивы чтобы я в память упирался, но вообще странно, откуда oom если нет утечек памяти, там же буфферами жмет
источник

DB

Dmitry Belkevich in Delphi & Lazarus
хранение в базе плохо по очень многим причинам
для начала: с файлами невозможно работать как с файлами в системе. уже одного этого достаточно, что бы перекрыть возможные мелкие плюсы
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Andrey Zubov
у меня видимо не настолько большие архивы чтобы я в память упирался, но вообще странно, откуда oom если нет утечек памяти, там же буфферами жмет
у нас архивы по нескольку гиг не редкость )
источник

AZ

Andrey Zubov in Delphi & Lazarus
Dmitry Belkevich
у нас архивы по нескольку гиг не редкость )
да все равно если жмем буфером ограниченного размера
источник

YA

Yerlan Assanov in Delphi & Lazarus
не суть щас как где хранить))
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Andrey Zubov
да все равно если жмем буфером ограниченного размера
так файлы внутри больше гига бывают, и всё валится. правда, крайне ненадежно. немного вправо-влево - всё умирает. со внешним проблем пока не было ни разу
источник

YA

Yerlan Assanov in Delphi & Lazarus
щас я скину либу, которой мы пакуем и обратно
источник

OT

Oleg Timkiv in Delphi & Lazarus
Самое интересное на тестовых машинах нормально работает, на серверах падает. Причем с интервалом 5 часов. Права все которые можно, выставили. И падает упаковка и распаковка, а само приложение работает.
источник

AZ

Andrey Zubov in Delphi & Lazarus
просто мне не нравится идея запуска внешней dll или exe в многопоточном сервере коим является unigui
источник

OT

Oleg Timkiv in Delphi & Lazarus
if not CreateProcess(PChar(Path + '7za.exe'), PChar(CmdLine), nil, nil, TRUE, 0,
       nil, PChar(Path), &si, &pi) then
       Exit;

   SetProcessPriority(pi.hProcess, PROCESS_PRIORITY_ABOVE_NORMAL);

   WaitForSingleObject(pi.hProcess, INFINITE);

   if not GetExitCodeProcess(pi.hProcess, dwExitCode) then
       Exit;
источник

YA

Yerlan Assanov in Delphi & Lazarus
Andrey Zubov
просто мне не нравится идея запуска внешней dll или exe в многопоточном сервере коим является unigui
мне это тоже не нравится
источник

YA

Yerlan Assanov in Delphi & Lazarus
постоянно запускать 7zip.exe
источник

YA

Yerlan Assanov in Delphi & Lazarus
причем каждая сессия отдельно
источник

YA

Yerlan Assanov in Delphi & Lazarus
херня какая то и так щас у нас работает))
источник

AZ

Andrey Zubov in Delphi & Lazarus
у гансмокера была хорошая статья относительно запуска внешних приложений
источник

OT

Oleg Timkiv in Delphi & Lazarus
сейчас  ZipForge  - хотим попробовать
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Andrey Zubov
просто мне не нравится идея запуска внешней dll или exe в многопоточном сервере коим является unigui
а что не так? создаются отдельные процессы в случае бинаря. каждому раздается вся доступная память
свалится - ну и хрен с ним )
дллка же будет вообще одна на систему загружаться. собственно на то и дллка )
источник

YA

Yerlan Assanov in Delphi & Lazarus
а когда начнут 100 сессий обращаться одному процессу?
источник

AZ

Andrey Zubov in Delphi & Lazarus
Dmitry Belkevich
а что не так? создаются отдельные процессы в случае бинаря. каждому раздается вся доступная память
свалится - ну и хрен с ним )
дллка же будет вообще одна на систему загружаться. собственно на то и дллка )
я не могу контролировать что там делается и как, для меня этот exe и dll это есть черный ящик
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Andrey Zubov
я не могу контролировать что там делается и как, для меня этот exe и dll это есть черный ящик
ну вот на практике схема с запуском внешнего бинаря показала на голову более надежное поведение
источник