Автор | Сообщение |
|
| постоянный участник
|
Пост N: 5804
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.04.18 19:40. Заголовок: Есть ли смысл переходить на 64бит в прогах на МиниГуи ?
Всем привет. Возвращаюсь опять к вопросу перехода с 32bit на 64bit. Сейчас использую МиниГуи на Borland 5.5.1 32bit. Ряд заказчиков давно используют 64bit Windows 2008 Server и Win10. Есть ли смысл пере собирать свою прогу на 64bit ? Что даст переход - ускорение выполнения программы, более высокую стабильность выполнения или ещё что то ? Можно ли собрать 64bit для Борланда ?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| moderator
|
Пост N: 1272
Зарегистрирован: 11.02.10
|
|
Отправлено: 01.04.18 20:08. Заголовок: Andrey пишет: Что д..
Andrey пишет: То, что для 64-битной оси это будет нативное 64-битное приложение. Ускорение выполнения программы составит не более 3-5%, что не существенно, так как не превышает погрешности измерения. Andrey пишет: цитата: | Можно ли собрать 64bit для Борланда ? |
| Да, если использовать лицензионный BCC 7.30 64-bit от Embarcadero Technologies
|
|
|
|
| |
Пост N: 615
Зарегистрирован: 08.07.06
|
|
Отправлено: 03.04.18 16:09. Заголовок: Так понимаю, переход..
Так понимаю, переход на 64 бита нужен, если требуется активная работа программы с памятью выше 2..3 Gb. Всё остальное, в тч "нативность" и ускорение на 3..5% - чистая блажь.
|
|
|
|
| постоянный участник
|
Пост N: 1394
Зарегистрирован: 27.01.07
|
|
Отправлено: 03.04.18 16:32. Заголовок: Гораздо важнее макси..
x64 позволяет очень сильно увеличить максимальное кол-во записей, а также максимальный размер базы и индекса.
|
|
|
|
| постоянный участник
|
Пост N: 5809
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.04.18 16:44. Заголовок: PSP пишет: x64 позв..
PSP пишет: цитата: | x64 позволяет очень сильно увеличить максимальное кол-во записей, а также максимальный размер базы и индекса. |
| Прога быстрей будет работать или нет ?
|
|
|
|
| постоянный участник
|
Пост N: 1395
Зарегистрирован: 27.01.07
|
|
Отправлено: 03.04.18 17:06. Заголовок: Andrey пишет: Прога..
Andrey пишет: цитата: | Прога быстрей будет работать или нет ? |
| Запуск 32-битных программ на 64-битной системе осуществляется с помощью "прослойки" WoW64 (Windows-on-Windows 64-bit). Это вносит некоторую задержку при запуске. 64-битные программы запускаются сразу ОС. Т.е., будет заметно, что прога быстрее запускается. Работать быстрее она вряд ли будет. Минус 64-битной проги - ее нельзя запустить на 32-битной системе.
|
|
|
|
| |
Пост N: 6797
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.04.18 17:35. Заголовок: PSP пишет: x64 позв..
PSP пишет: цитата: | x64 позволяет очень сильно увеличить максимальное кол-во записей, а также максимальный размер базы и индекса. |
| Это ты про DBF ?
|
|
|
|
| постоянный участник
|
Пост N: 1396
Зарегистрирован: 27.01.07
|
|
Отправлено: 03.04.18 19:36. Заголовок: Да (что-то уже сомне..
Да (что-то уже сомневаюсь)))
|
|
|
|
| |
Пост N: 616
Зарегистрирован: 08.07.06
|
|
Отправлено: 04.04.18 17:18. Заголовок: PSP пишет: Да (что-..
PSP пишет: цитата: | Да (что-то уже сомневаюсь))) |
| И правильно делаешь. Структура DBF и NTX/CDX не зависит от разрядности приложения: 2014-10-17 14:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * include/hbrddcdx.h * src/rdd/dbfcdx/dbfcdx1.c + added support for large index files over 4GB length. These are slightly modified CDX indexes which stores index page numbers instead of index page offsets inside index file. This trick increase maximum index files size from 2^32 (4GB) to 2^41 (2TB). This index format is enabled automatically when DB_DBFLOCK_HB64 is used. This is the same behavior as in DBFNTX and DBFNSX for which I added support for large indexes (up to 4TB) few years ago. Warning: new CDX indexes are not backward compatible and cannot be read by other systems or older [x]Harbour versions. If you try to open new indexes using older [x]Harbour RDDs then RTE "DBFCDX/1012 Corruption detected" is generated. When current Harbour *DBFCDX/SIXCDX RDD open index file then it automatically recognize type of index file so it will work correctly with both versions without any problem. In short words: People using DB_DBFLOCK_HB64 should remember that after reindexing with new Harbour applications old ones cannot read new CDX indexes. ; In next step I plan to add support for user defined page size in CDX index files.
|
|
|
|
| постоянный участник
|
Пост N: 1397
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.04.18 17:40. Заголовок: Это я всё читал. Мне..
Это я всё читал. Мне непонятно, будет ли работать схема DB_DBFLOCK_HB64 в 32-разрядном приложении.
|
|
|
|
| постоянный участник
|
Пост N: 1398
Зарегистрирован: 27.01.07
|
|
Отправлено: 05.04.18 20:53. Заголовок: С индексами понятно)..
С индексами понятно) А что насчет самих dbf, их размера и кол-ва записей? А?))
|
|
|
|
| |
Пост N: 6799
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.04.18 21:34. Заголовок: PSP пишет: А что н..
PSP пишет: цитата: | А что насчет самих dbf, их размера и кол-ва записей? |
| Если есть возможность , затести. Я бы так и сделал.
|
|
|
|
|
| постоянный участник
|
Пост N: 1399
Зарегистрирован: 27.01.07
|
|
Отправлено: 05.04.18 22:37. Заголовок: Ну, если никто не зн..
Ну, если никто не знает, то при случае затестю)
|
|
|
|
| |
Пост N: 6800
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.04.18 22:57. Заголовок: PSP я под ADS затес..
PSP я под ADS затестил при AdsLocking( .F. ) , четко держит базу в 4 гига , апосля четко падает )) ЗЫ 32 бита тестил
|
|
|
|
| Администратор
|
Пост N: 3718
Зарегистрирован: 23.05.05
|
|
Отправлено: 06.04.18 09:21. Заголовок: PSP пишет: А что на..
PSP пишет: цитата: | А что насчет самих dbf, их размера и кол-ва записей? А?)) |
| Для 32-битных программ размер dbf-файла больше 4Г будет поддерживаться, если конечно позволит файловая система. А количество записей более 4 млрд (4294967295) - нет, так как и в заголовке dbf для количества записей выделено 4 байта, и во внутренних структурах тип данных для ulRecCount, ulRecNo - 32-битный HB_ULONG 64-битность тут не спасет, это ограничение самого формата.
|
|
|
|
| постоянный участник
|
Пост N: 1400
Зарегистрирован: 27.01.07
|
|
Отправлено: 06.04.18 10:21. Заголовок: Вот теперь всё понят..
Вот теперь всё понятно) Да, получается смысл в 64-битном приложении только в возможности использовании больших объемов памяти.
|
|
|
|
| постоянный участник
|
Пост N: 5812
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.04.18 13:32. Заголовок: PSP пишет: Да, полу..
PSP пишет: цитата: | Да, получается смысл в 64-битном приложении только в возможности использовании больших объемов памяти. |
| Получается, что для Харбора этого и не нужно ! DBF - 64бит не поддерживает. Единственное исключение наверное (если я не прав то поправьте меня) строковые переменные смогут быть больше ? Т.е. если файл закачать в строковую переменную для 32бит будет один предел, для 64бит будет больше.
|
|
|
|
| Администратор
|
Пост N: 3719
Зарегистрирован: 23.05.05
|
|
Отправлено: 06.04.18 13:43. Заголовок: Различий конечно бол..
Различий конечно больше. Это скажем целочисленная арифметика. Для 32-х бит большие числа будут преобразованы в double с потерей разрядности. Для 64-х бит этого не будет. dbf - да, формат не поддерживает более 4 млрд.записей. Но на размер файла такого ограничения нет, кстати, что для 32, что для 64-разрядных приложений. Сама ОС конечно должна быть 64-битной, но сейчас думаю 32-битные ОС стоят только на старых компьютерах.
|
|
|
|
| |
Пост N: 617
Зарегистрирован: 08.07.06
|
|
Отправлено: 06.04.18 17:37. Заголовок: Да, получается смысл..
цитата: | Да, получается смысл в 64-битном приложении только в возможности использовании больших объемов памяти. |
| цитата: | Получается, что для Харбора этого и не нужно ! DBF - 64бит не поддерживает. Единственное исключение наверное (если я не прав то поправьте меня) строковые переменные смогут быть больше ? Т.е. если файл закачать в строковую переменную для 32бит будет один предел, для 64бит будет больше. |
| Максимальный размер строковой переменной (как и массива) в Harbour лимитирован общим объемом памяти, который может быть выделен операционной системой одному процессу. Разумеется, что в x64 этот лимит выше, чем в x86 (32-bit) . Это как раз и есть то самое "использование бОльших объемов памяти".
|
|
|
|
| |
Пост N: 618
Зарегистрирован: 08.07.06
|
|
Отправлено: 09.04.18 00:32. Заголовок: Скомпилировал просте..
Скомпилировал простейшую программу под 64 бит: FUNC Main() ? MEMORY(0), MEMORY(0)/1024/1024, "Gb" ? MEMORY(1), MEMORY(1)/1024/1024, "Gb" ? MEMORY(2), MEMORY(2)/1024/1024, "Gb" INKEY(0) RETURN Дает такие результаты: 13498968 12.87 Gb 4194303 4.00 Gb 13498972 12.87 Gb Не знаю, с чем это связано, но даже под х64 одна строка не может быть больше 4 гигов.
|
|
|
|