|
Comanche
|
|
Что лучше: P-код или Native код?06.12.2008, 14:33. Показов 5499. Ответов 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 методов
Что это за Скрипт-код? Что он зделает?И куда вставлять код с баннером? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|