Только что построчно перекопировал логику конвертера ped2raw из ANSI C проекта в джавовский aisconvert ("сишный" проект здесь:
https://sourceforge.net/projects/ped2raw/).
И был удивлён скоростью. Скорость на джаве обработки 2 мегабайтового файла VVerenich.ped (используя полный мап, который 13.2М и имеет 558706 рекордов) - всего 2.5 секунды (сишный нативный код отрабатывает за 1.5-2 секунды).
Но при больших файлах со многими строками - джавовская виртуальная машина будет грузится один раз и оверхед её однократной загрузки нивелируется. Замеряя же время отработки того же файла в джавовском коде - я получаю всего 1.8 секунды, что неразличимо с сишной программой, и разница - в пределах ошибки.
Во-первых - на джаве легче (быстрее) писать. Во-вторых - существующий тулкит уже имеет массу полезных общих свойств использования как например общий паттерн использования фильтров. Например, в виде инпута можно передать директорию, и все файлы в ней будут отработаны (т.е. юзеру возможно и даже желательно не писать скрипты). В будущем можно расширить уже существующий ГУИ (нет проблем было-бы сделать и TCL/Tк враппер для сишной проги, который бы работал везде, но он будет гораздо беднее виджетами). Итд. В-третьих - гораздо проще поддерживать один codebase вместо двух.
Тут же загрузил новую версию (1.11) aisconvert на сорсфордж. Так что можно уже сейчас использовать ped2raw оттуда, например вот так:
$ aisconvert -p /home/anode/VVerenich.ped -s /home/anode/VVerenich.map
а под виндовс вот так:
C:\aisconvert> aisconvert -p C:\data\VVerenich.ped -s C:\data\VVerenich.map
или передав директорию для результатов, и в другом виде задав аргументы (в хелпе всё новое добавлено):
C:\aisconvert> aisconvert C:\data\VVerenich.ped --snips C:\data\VVerenich.map -dir C:\temp