|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrew Sagulin 2:6037/1.28 28 Feb 2002 18:47:52 To : Bulat Ziganshin Subject : Perl & bin files -------------------------------------------------------------------------------- 28 Feb 02 00:08, Bulat Ziganshin wrote to Andrew Sagulin: AS>> Есть задача обработки (под Win32) двоичных файлов (не более AS>> 30 за раз, размер каждого 10-15 мегабайт). В файле содержится AS>> около 150 AS>> Про pack и unpack знаю, но этот вариант однозначно отпадает AS>> по причине низкого быстродействия. BZ> ты это проверял? Hа перле я не пробовал, но я долго оптимизировал парсер на паскале. В одном месте даже пришлось делать ассемблерную вставку. Структура файла достаточно сложная. Кроме того, она не задана жёстко в алгоритме, а хранится в отдельном файле, который считывается при инициализации объекта. В результате получается, что помимо unpack нужно ещё производить массу промежуточных вычислений и пересылок данных внутри парсера. Перл тут однозначно отдыхает. Я как-то пробовал считать на нём CRC32 и понял, что вычисления - не его профиль. :) BZ> и на что больше времени ушло - на распаковку или дальнейшую обработку? Hа Delphi файл парсится за 10-20 секунд. Обработка занимает около 30-40 секунд. BZ> другой вариант - а чего тебе в дельфи не хватает? хешей, регэкспов? Мне в Delphi всё хватает, кроме гибкости и оперативности, которая присуща только интерпретируемым скриптам. Приходит начальник: "а давай-ка посчитаем длительность оборванных соединений по таким-то линиям за такой-то срок". Ок. Запукаем Delphi, создаём новый проект, копируем в него части старого, добавляем всяческие условия. Отлаживаем, выдаём результат. Hачальник: "А мне бы надо это в такой форме, а ты вывел в такой. Hо в старой форме тоже иногда нужно бывает"... Хорошо. Опять меняем программу, компилируем, отлаживаем, выдаём. "Андрей, а ты не мог посчитать вот по тем же линиям, но с этого часа до этого". И так далее и так далее. Hа перле всё это намного проще, нет необходимости отдельно хранить исходники и бинарники. Чтобы хоть как-то облегчить себе жизнь, часто меняемые параметры я заношу не в алгоритм, а в ini-файл. Если утилиты будут написаны на перле, то эти параметры можно занести сразу в программу - избавляемся ещё и от отдельных ini-файлов. BZ> третий - сделать на дельфи препроцессор. И создавать временные файлы объёмом в несколько сот мегабайт?.. :) BZ> но не понимаю, чем это быстрее unpack Если бы просто unpack... Hо об этом я уже выше написал. Всего Вам... Андpей. --- GoldED+/W32 1.1.5-20011130 * Origin: Если жизнь не удалась - займись чем-нибудь другим. (2:6037/1.28) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/27923c7e4e23.html, оценка из 5, голосов 10
|