Free Pascal

Кактус, или как перестать грызть Lazarus

"Мыши плакали, кололись, но продолжали грызть кактус..."
Из новорусского фольклора

Присказка

Первый раз о тестировании сладкой парочки, состоящей из Free Pascal (FPC) - компилятора и библиотек общего назначения FCL, и Lazarus - библиотеки компонентов LCL и среды разработки, я написал еще в 2010 году. Выводы были не слишком утешительные.

Тест скорости: array vs TList vs dynamic array

Проведем небольшой замер скорости случайного и последовательного доступа, используя:

  • статический массив (array, должен размещаться на стеке)
  • класс-контейнер TList (размещается в куче)
  • динамический массив (тоже размещается в куче)

Используем массив из 10 миллионов элементов имеющих типы данных "integer" и "varaint". При необходимости вы можете легко изменить тип в соответствующей секции программы.

"Test drive" FreePascal / Lazarus

Тестировал FreePascal / Lazarus на предмет пригодности к профессиональной разработке. В качестве теста взял простенькое приложение из 3 компонентов (1 исполняемый модуль и 2 DLL-ки по принципу плагинов) с несложной обработкой XML внутри. Выводы.

Продукт имеет немало продвинутой функциональности, главная из которой - компиляция и кросс-компияция под множество платформ, включая мобильные устройства. Однако, среда пока не слишком пригодна для разработки чего-то иного, чем монолитное графическое оконное или консольное приложение, в т.ч. связанное с СУБД.

Например:

Delphi. Массив байтов в строку шестнадцатеричных значений.

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

Паскалевские строки: наглядно и просто

Предлагаемый ниже способ хотя и не максимально быстрый, но близок к нему, обладая при этом наглядностью и компактностью. Наиболее быстрым решением, видимо, будет определение постоянного массива символов от Chr(0) до Chr(255) и адресация по значению очередного байта в цикле.

Subscribe to RSS - Free Pascal