|
Comanche
|
|
Что лучше: P-код или Native код?06.12.2008, 14:33. Показов 5516. Ответов 7
Метки нет (Все метки)
В MSDN прочитал, что компиляция в Native-код позволяет снизить нагрузку на MSVBVM60.DLL при исполнении откомпилированного EXE-шника. Мол, в итоге код будет работать быстрее, поскольку в нём УЖЕ сделано многое из того, что при запуске EXE-шника в P-коде будет ещё только выполняться упомянутой DLL-кой прямо 'на лету'.
Меня быстродействие не волнует - не та задача. А вот размер - важен. И тут P-код побеждает с неплохим отрывом, вот пример: Компиляция в Native код, с оптимизацией для быстрого кода: 328 килобайт (EXE-шник) Компиляция в Native код, с оптимизацией для маленького кода: 300 Кб Компиляция в Native код, без оптимизации: 336 Кб Компиляция в P-код: 216 Кб Т.е. выигрыш в размере - от 28 до 35 процентов! Я бы не ставил этот вопрос, если бы не тот факт, что ЯКОБЫ EXE-файлы, откомпилированные в P-коде, имеют какие-то проблемы при выполнении - то ли с совместимостью, то ли ещё с чем. Толком ничего не знаю - просто где-то слышал или читал. Если кто знает - проясните, плиз. Спасибо. |
|
| 06.12.2008, 14:33 | |
|
Ответы с готовыми решениями:
7
Как превратить код .NET в код Win32(Native) (очередной раз) Java код в native (машинный) код Что лучше регистрировать? Программный код и Т.М ? |
|
0 / 0 / 0
Регистрация: 13.09.2008
Сообщений: 120
|
|
| 06.12.2008, 15:36 | |
|
Насколько я знаю экзешники P-код требуют наличия на компьютере специальной библиотеки времени исполнения. А когда ты компилируешь в Native-код - транслируешь прогу в машинные код - DLL не нужна.
Попробуй уменьшить объем с помощью 'Optimize for small code' и вообще можно просто попытаться сделать отдельные функции программы более простыми- найти другой способ решения поставленной задачи! Удачи
0
|
|
|
Comanche
|
|
| 06.12.2008, 15:57 | |
|
Не согласен: run-time библиотека нужна и для P-кода, и для Native-кода. По крайней мере, я так понял, прочитав в MSDN-е вот это:
P-code, or pseudo code, is an intermediate step between the high-level instructions in your Basic program and the low-level native code your computer's processor executes. At run time, Visual Basic translates each p-code statement to native code. By compiling directly to native code format, you eliminate the intermediate p-code step. You can debug compiled native code using standard native code debugging tools, such as the debugging environment provided by Visual C++. You can also use options available in languages such as Visual C++ for optimizing and debugging native code. For example, you can optimize code for speed or for size. Note All projects created with Visual Basic use the services of the run-time DLL (MSVBVM60.DLL). Among the services provided by this DLL are startup and shutdown code for your application, functionality for forms and intrinsic controls, and run-time functions like Format and CLng. Compiling a project with the Native Code option means that the code you write will be fully compiled to the native instructions of the processor chip, instead of being compiled to p-code. This will greatly speed up loops and mathematical calculations, and may somewhat speed up calls to the services provided by MSVBVM60.DLL. However, it does not eliminate the need for the DLL. |
|
|
0 / 0 / 0
Регистрация: 09.12.2008
Сообщений: 5
|
|
| 09.12.2008, 10:39 | |
|
На скоко мне известно , а это было написано в руководстве для разработчиков. То Р-код это есть чисто для просмотра, тобишь в отличии
от VC он не создает ЕХЕшник, пока ты сам не скажешь.
0
|
|
|
Comanche
|
|
| 09.12.2008, 17:37 | |
|
Вообще-то, выбрав опцию 'Компилировать в P-код', я СМОГ получить EXE-шник, - а иначе как бы я написал в первом сообщении этого топика, что его размер - 216 килобайт?!
![]() И этот EXE-шник нормально запускается - по крайне мере, на той же машине. И использует в своей работе MSVBVM60.DLL, конечно. Вопрос в том, правда ли, что P-код чем-то 'ущербен' (кроме быстродействия) и может быть источником каких-либо проблем, или же меня зря напугали? |
|
|
0 / 0 / 0
Регистрация: 09.12.2008
Сообщений: 5
|
|
| 10.12.2008, 05:56 | |
|
Нет ты не понял когда ты нажимаешь старт в тултипе, то VB не создает ЕХЕ файл. Сам посмотри вот это работает Р-код
0
|
|
|
Comanche
|
|
| 14.12.2008, 15:36 | |
|
2 All:
Как выбрать радио-баттоном компиляцию в Пи-код - я знаю. Читайте внимательнее топик, пожалуйста. То, что по 'Start' (F5) запускается именно 'Пи-кодовая' версия - охотно верю. Тем не менее, если принять во внимание две вещи - выдержку из МСДНа выше и то, что есть такой вариант компиляции, как в Пи-код, - то получается, что Пи-код - это не только 'для просмотра', как писали выше. Получается, что это вполне равноправный с Native-кодом вариант EXE-шника. У него и размер другой, как я уже говорил. Короче так: если кому доподлинно известно о недостатках Пи-кода (если таковые имеются, конечно), то милости просим поделиться сей информацией. Спасибо! |
|
| 14.12.2008, 15:36 | |
|
Помогаю со студенческими работами здесь
8
break или как сделать лучше код
Исходный код native методов
Что это за Скрипт-код? Что он зделает?И куда вставлять код с баннером? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|