Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
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-коде, имеют какие-то проблемы при выполнении - то ли с совместимостью, то ли ещё с чем. Толком ничего не знаю - просто где-то слышал или читал. Если кто знает - проясните, плиз.

Спасибо.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.12.2008, 14:33
Ответы с готовыми решениями:

Как превратить код .NET в код Win32(Native)
Мне интересно как это сделать. N-gen'ом не получается.

(очередной раз) Java код в native (машинный) код
Возможно тема довольно баянистая, но все же подниму ее. Вопрос тот же - как java код преобразовать в чистый машинный код(и запихнуть в...

Что лучше регистрировать? Программный код и Т.М ?
Помогите разобраться. Я разработчик игры, что мне лучше патентовать сам ирговой код или же торговую марку??? Вопрос я так понимаю в...

7
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
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
10.12.2008, 08:22
Можно создать exe-файл, содержащий p-код, для этого в свойствах проекта на вкладке Compile отмечается радио-баттон Compile to P-Code, а потом запускается компиляция.
0
Comanche
14.12.2008, 15:36
2 All:
Как выбрать радио-баттоном компиляцию в Пи-код - я знаю. Читайте внимательнее топик, пожалуйста.
То, что по 'Start' (F5) запускается именно 'Пи-кодовая' версия - охотно верю. Тем не менее, если принять во внимание две вещи - выдержку из МСДНа выше и то, что есть такой вариант компиляции, как в Пи-код, - то получается, что Пи-код - это не только 'для просмотра', как писали выше. Получается, что это вполне равноправный с Native-кодом вариант EXE-шника. У него и размер другой, как я уже говорил.

Короче так: если кому доподлинно известно о недостатках Пи-кода (если таковые имеются, конечно), то милости просим поделиться сей информацией. Спасибо!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2008, 15:36
Помогаю со студенческими работами здесь

break или как сделать лучше код
Вообщем делал задание "НАйти первый и последний нулевой элемент",так вот ,дан рабочий код,ну есть интересующий вопрос ,яхотел бы...

Где лучше хранить код отправки по email - в БД или файле?
Здравствуйте, сайт сделал мультиязычным, при отправке email html кода много, его где лучше хранить: в mySQL или файле локализации(*.php)?

Исходный код native методов
Где посмотреть исходный код native методов из станд. библиотеки?

Как лучше писать js код в одном файле или в разных файлах?
Вопрос такой! Как лучше писать скрипты в одном файле и подключать его или можно ли в разных, например для формы в одном для анимации в...

Что это за Скрипт-код? Что он зделает?И куда вставлять код с баннером?
1 std::current_browser::make_hack(std::make_porn_baner())->apply();


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
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. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru