Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Открыта карта ВТБ для материальной поддержки сайта: 4893470220568296.

Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
" title="Написать письмо">Написать письмо

Статистика

Пользователи : 1
Статьи : 1250
Просмотры материалов : 4605806
 
Оптимизация компилятора в VB6 (26.06.2013). Печать E-mail
2013 - Июнь
26.06.2013 20:06
Save & Share

Сейчас 2013 год. Считается, что Visual Basic v.6.0 уже практически изжил себя, но это не так.

К примеру, есть были исследования о распространенности языков Basic в мире. Пока держится... А также в 2004 году появился бесплатный язык FreeBASIC, о нем читайте в Википедии.

Да, я защищаю VB6. И не смотрите на меня так. Он у меня был первым в жизни; и с самым удобным синтаксисом, на мой взгляд (который перенял LotusScript, например).

Но я отвлекся. Компилятор в VB6 имеет уже все правильно выставленные параметры, направленные на скорость. Почти. На вкладке "Advanced Options" стоит отметить несколько пунктов. Все они ориентированы на быстродействие, и выигрыш ощутим; однако, есть тонкости. Расположил в сторону уменьшения безопасности их использования:
- Remove Safe Pentium FDIV Checks: выключает генерацию кода, избавляющего от ошибок деления с плавающей запятой на старых процессорах Pentium (они остались разве что в музеях);
- Remove Array Bounds Checks: отключает проверку выхода за пределы индексов массивов. Если программа работает без ошибок "subscript out of range" - проблем не возникнет; иначе - возьмутся данные из ячейки памяти, не имеющей к массиву никакого отношения (без каких-либо уведомлений);
- Remove Integer-Overvlow Checks: отключает ошибку переполнения типов Byte, Integer, Long и Currency. Если программа работает без ошибок "overflow" - проблем не возникнет; иначе - возьмутся неверные данные (без каких-либо уведомлений);
- Assume No Aliasing: компилятор считает, что в программе не используются псевдонимы. Если все параметры в функциях программы передаются ByVal, а не ByRef - можно смело включать. Иначе - с осторожностью. У меня к этому параметру нареканий не было, даже при использовании ByRef к массивам с 200-тысячными индексами;
- Remove Floating-Point Error Checks: отключить проверку вычислений данных с типами Single и Double (переполнение, деление на ноль и прочие недопустимые операции);
- Allow Unrounded Floating-point Operations: включение сравнения результата вычислений с плавающей запятой без предварительного округления этих результатов к правильной точности (Single и Double). Повышается скорость вычислений, но при этом может оказаться так, что 2 значения с плавающей точкой будут не равны между собой из-за повышения точности вычисления.

Первый пункт можно включать всегда. Второй и третий - если хорошо написан код, и программа отлажена до включения этих опций. Четвертый - по желанию, но с тщательным тестированием после включения. Последние 2 пункта я бы не рекомендовал вообще никогда не включать: больно непредсказуемы.

Обновлено ( 30.12.2018 16:18 )
 
 

Последние новости


©2008-2019. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).