PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Новости » PureBasic 6.40


PureBasic 6.40

Сообщений 1 страница 16 из 16

1

https://www.purebasic.fr/english/viewtopic.php?t=88238
Основное изменение - новый менеджер строк, ускоряющий работу с ними.

- Added: Fully reworked the internal string manager for much faster operations !
- Added: Brand new StringBuilder library for lightning fast string concatenation !

- Removed: #PB_String_InPlace for ReplaceString() - see the Migration from PureBasic 6.30 to 6.40 for more informations

- Fixed: A few compiler and library bugs

0

2

Работа со строками стала быстрее примерно в 10 раз, но минимальный размер исполняемого файла увеличился. Пустой исходник компилируется в exe размером 265 КБ.

+1

3

Всё преимущество Pb (малый размер и чистый машинный код) постепенно исчезает. Конкурировать с делфи/си с тысячами библиотек всё равно не получится.

0

4

вот и я решил приблудить 3д к одному моему проекту... ладно думаю полтора мегабайта 3д дллка. пусть будет. переехал с 5.40 по моему на 6.20... эта дллка стала 6 мегабайт. да ничож в моем коде не поменялось!!!111расрас... что за подстава от Pb? :) могли бы уж там как-то сделать пересобираемую дллку чтоль. чтоб оттуда ковырялось только то что реально использовалось в проекте, без всего не нужного флешроялю, что там в кустах запрятан и стоит не нужный.

0

5

а был ли смысл её делать в 620????
вертай в зад старую версию

не вижу смысла использовать последние версии если всё есть в несильно старых версиях
если бы не почти 200 кил бесполезного кода, тогда можно было бы новые использовать, а так пусть будут
когда то всё равно придётся обновиться

0

6

с одной стороны не хотелось бы зоопарк разных версий разводить... с другой все-ж полтора мегабайта лучше, чем 6. ладно бы моя программа сама столько весила, так нет :) моя там до мегабайта. и довесок получается в 6 раз больше :) ну удружил Pb.

0

7

Состоялся релиз версии 6.40.

0

8

На форуме еще не просили сделать версию для Picocalc?

0

9

egons написал(а):

Picocalc

Для PB нужна полноценная ОС.
Picocalc судя по всему собран на STM32.
У него в максимальной комплектации 520 КБ ОЗУ и 4 МБ флеш-памяти. Это мало даже для сильно урезанной Linux.

0

10

Пётр написал(а):

Для PB нужна полноценная ОС

Есть два варианта запуска - .bin и .uf2(прошивка и надолго)
PicoMite слишком тормозной, к тому же возникали просьбы о компиляторе, но ответа не было.

Пётр написал(а):

Это мало даже для сильно урезанной Linux.

есть версия Fuzix, которая на моем не запустилась. Версию 1.1 пробовать не стал.

0

11

Сравнение минимального размера EXE в разных версиях PureBasic
Провёл небольшой эксперимент и решил поделиться результатами.

Тестовая программа:

Код:
End

Компиляция выполнялась x86-компилятором со стандартными настройками.

Результаты:
Версия PB Размер EXE
3.40 4128 байт
4.20 4608 байт
5.70 4608 байт
5.72 LTS 4608 байт
6.40 207872 байт

Также проверил программу:

Код:
MessageRequester("Test", "Hello", #PB_MessageRequester_Ok)

Размер в PB 6.40 составил 209408 байт, то есть всего на 1536 байт больше, чем пустой End.

Это означает, что основной объём занимает не GUI и не код программы, а базовый runtime, который подключается уже для пустого приложения.

Дополнительно был исследован PE-заголовок.

В PB 6.40 появились:
секция .tls;
TLS Directory;
значительно больше импортируемых функций WinAPI;
кодовая секция .text около 139 КБ даже для программы из одного End.

В версиях 3.x–5.x ничего подобного нет, а минимальный размер EXE остаётся около 4–5 КБ.

Для сравнения взял свой старый проект 2007 года (PB 4.20). Программа содержала встроенные ресурсы:

11 WAV-файлов;
несколько BMP;
JPG;
иконки.

Размер готового EXE составлял всего 79360 байт сжатым UPX (581 кб не сжатый).

Получается довольно любопытная картина:
PureBasic 3.x–5.x создаёт чрезвычайно компактные EXE.
Начиная с ветки 6.x минимальный размер пустой программы вырос примерно до 200 КБ.
Рост связан не с кодом пользователя, а с изменением внутреннего runtime компилятора.

Если кто-то знает официальную причину такого увеличения размера между 5.72 и 6.x, было бы интересно услышать комментарии.

0

12

Lega написал(а):

Если кто-то знает официальную причину такого увеличения размера между 5.72 и 6.x, было бы интересно услышать комментарии.

Последняя версия создающая компактные файлы 6.04, плюс к этому она имеет C-Backend и компилироваться на ARM-процессоре, также поддерживает WindowsXP.

Автор где-то писал, что старые версии использовали какую-то виндовую библиотеку с которой тяжело создавать/улучшать код, надо было много извращаться.

0

13

Lega написал(а):

Если кто-то знает официальную причину такого увеличения размера

https://www.purebasic.fr/blog/?p=538

0

14

Код:
MessageBox_(0, "Мой размер 1 КБ", "", #MB_ICONINFORMATION)
End

; Далее команды для линкера, нацеленные на уменьшение размера исполняемого файла.
Import "/merge:.text=.code" : EndImport
Import "/merge:.data=.code" : EndImport
Import "/merge:.rsrc=.code" : EndImport
Import "/merge:.bss=.code" : EndImport
Import "/merge:.edata=.code" : EndImport
Import "/merge:.idata=.code" : EndImport
Import "/merge:.rcdata=.code" : EndImport
Import "/merge:.reloc=.code" : EndImport

для сравнения. 4.31 выдало 1536 байт, 5.72 -2560 байт.

0

15

у меня на 5.73 показывает 1536 байт, как и на 4.31

0

16

bizdon написал(а):

у меня на 5.73 показывает 1536 байт, как и на 4.31

ну да, я забыл убрать manifest.

0


Вы здесь » PureBasic - форум » Новости » PureBasic 6.40