purebasic.info

PureBasic forum
Текущее время: Пт июл 10, 2020 3:51 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 89 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн ноя 22, 2010 3:43 am 
Не в сети
профессор

Зарегистрирован: Вт май 04, 2010 12:19 pm
Сообщений: 352
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Цитата:
и судя по выходному exe размеру файла С++ явно не Studio 2008!
puremaster проясни заявленные компиляторы.
Он и есть.

Цитата:
Получается что пурик считает не 8 а 10 знаков после запятой!
А кто обрезать до этих 8 знаков будет? :) Так то даже больше 10 зн. (это ж double - 8 байт), если воспользоваться какой то четкой функцией double to str, только четкости это не добавит.

Цитата:
Вот асм код.
Только сейчас заметил, тип "n" должен быть double, а вы даже не сказали.
Это все kvitaliy виноват написав "long n = 0;" :)
Да нет, виноват только я, прошу прощения.

По последним расчетам PB проигрывает в скорости того цикла всего ~1.6% (28552ms 28093ms), и в размере всего в 4 раза (161 байт против 41).

Так что все в порядке. PB рулит :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн ноя 22, 2010 6:57 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6650
Благодарил (а): 36 раз.
Поблагодарили: 234 раз.
Пункты репутации: 65
puremaster писал(а):
Он и есть.

Не, не может быть... Скинь весь проект мне или научи, как сделать такой маленький выходной файл? У меня ~30 кило, ну и естественно, PEiD определяет как Microsoft Visual C++ 8.0, а твой файл не определяется.
puremaster писал(а):
Только сейчас заметил, тип "n" должен быть double,

Зачем? Тип Integer или Long ( в старых версиях Пурика нет Integer) to +2147483647, а при 9 знаках после запятой n = 2000000280, так что в нашем случае вполне достаточно.
puremaster писал(а):
и в размере всего в 4 раза (161 байт против 41).

А это что то не понял, где 161 байт, а где 41?

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн ноя 22, 2010 1:19 pm 
Не в сети
профессор

Зарегистрирован: Вт май 04, 2010 12:19 pm
Сообщений: 352
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Цитата:
как сделать такой маленький выходной файл?
В empty project создаешь файл name.cpp. В этот файл пишешь код со второй страницы.
Сверху рядом с зеленым треугольником меняешь debug на release.
В Project properties:
linker - system - subsystem (console)
linker - manifest file - generate manifest (no)
linker - debugging - generate debug info (no)
linker - advanced - randomized base address (disable)

Для EXE весом 1kb мона склеить секции text rdata
linker - advanced - merge section (.rdata=.text)
остальные опции на свое усмотрение.

Патчишь link.exe, избавляя программы от "Rich".
Не знаю насколько это полезно, но некоторые совеуют научить программу использовать msvcrt_без_всяких_цифр, наверное чтоб шло без всяких сервис паков и прочей хрени на древнем виндовсе :)
F7.


Цитата:
Зачем? Тип Integer или Long ( в старых версиях Пурика нет Integer) to +2147483647, а при 9 знаках после запятой n = 2000000280, так что в нашем случае вполне достаточно.
Для один-в-один с кодом в первом посте :)


Цитата:
А это что то не понял, где 161 байт, а где 41?
Да так. ничего особенного:
http://freetexthost.com/scp61j5gpu


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн ноя 22, 2010 4:17 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6650
Благодарил (а): 36 раз.
Поблагодарили: 234 раз.
Пункты репутации: 65
puremaster писал(а):
Патчишь link.exe, избавляя программы от "Rich".

Ну кроме этого сделал всё. Входной exe уменьшился до 3 584 байт, уже сопоставимо с размером консольки для Пурика.
puremaster писал(а):
Для один-в-один с кодом в первом посте :)

Когда я писал, думал, что можно будет считать эдак 20 (!) знаков после запятой, но быстро понял, что 9 более чем достаточно.

puremaster писал(а):
Цитата:
А это что то не понял, где 161 байт, а где 41?
Да так. ничего особенного:
http://freetexthost.com/scp61j5gpu

Теперь и тут дошло :), Ну что сказать - как и сказал в первом своем впечатлении, с оптимизацией в Пурике не все в порядке.
puremaster, а вот уж раз пошла такая пьянка, есть ли способ настройки, что бы и GUI программы на MSVS C++ имели такой же размер, сопоставимый с Пуриком ?

P.S. НО писать на С++, настраивать проект и производить шаманские действия с компоновщиком это не для меня, однозначно.
Пурик в этом случае незаменим - скопипастил запустил одним нажатием на кнопку - и все работает, как автор задумал.
Для домашнего использования Пурик это идеальное решение.

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 9:34 am 
Не в сети
профессор

Зарегистрирован: Вт май 04, 2010 12:19 pm
Сообщений: 352
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
kvitaliy писал(а):
что бы и GUI программы на MSVS C++ имели такой же размер, сопоставимый с Пуриком ?

3 на выбор:
Рисовать .rc файлы в resedit'ах.
Скопипастить заготовку с winapi, а контролы накидать в прогу, где сгенерится куча CreateWindow..
Взять либу из pb :)


kvitaliy писал(а):
P.S...
Все верно.
Скажу лишь что я к PB всегда относился как к надстройке для fasm. Добавили либы и их удобное поключение, отличный встроенный gui отладчик.. В любом случае, PB это круто.
и глупо было бы говорить что то плохое о pb на pb форуме :roll:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 11:20 am 
Не в сети
док

Зарегистрирован: Вс май 02, 2010 4:54 pm
Сообщений: 117
Откуда: оттуда...
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Ну и я свои 5 копеечек всуну:

На счет соревнования PB vs MSVC++ - если следовать логике, то компилятор пурика нужно сравнивать с мингом или на худой конец с кроссплатформенным паскалем(Lazarus), а не с MS-компилятором, который по понятной и коню причине оптимизирован суто под винду.

puremaster писал(а):
Только сейчас заметил, тип "n" должен быть double, а вы даже не сказали.

Вообще для пурика не так критично - n.d или n.i, а вот в сиплюсах уже надо поразмыслить над выбором типа переменной(можно и double_Complex попробывать)...

И напоследок маленький вброс повидла в вентилятор: :twisted:
puremaster писал(а):
Так что все в порядке. PB рулит :)

Ха, если бы, - кроме сишки у пурика есть еще один конкурент по рулевой колонке... :)
И похоже, что на сегодняшний день он один из самых шустрых компиляторов, ну еще вполне возможно, что Интеловский сможет с ним потягаться в скорости (Masm'ы, Nasm'ы и прочие компилеры для сугубо низкоуровневого кода я в счет не беру).
Эх, не хотелось растраивать кВиталия, хотя он же и начал этот эксперимент, а, как известно, "шовмастгоон" - короче, качайте и тестируйте.
Переменную n обьявил как double, ну и поставил на вывод число проходов в цикле, а то сначала даже сам не очень поверил результату, но все цифры полностью идентичны с кодом на пурике.
Ну и еще добавил всетаки вычисление точности в 10 знаков, чтоб можно было реально сравнить результат при более длительной обработке.


Вложения:
Комментарий к файлу: Пи-руль :)
PI_force.zip [24.11 KiB]
Скачиваний: 284
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 2:29 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11707
Благодарил (а): 4 раз.
Поблагодарили: 512 раз.
Sp01LeR писал(а):
Ха, если бы, - кроме сишки у пурика есть еще один конкурент по рулевой колонке...

И похоже, что на сегодняшний день он один из самых шустрых компиляторов
Этот "шустрый" компилятор (похоже на gcc-4.4.1) проиграл пурику полсекунды при вычислении 8-ми знаков после запятой.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 2:57 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6650
Благодарил (а): 36 раз.
Поблагодарили: 234 раз.
Пункты репутации: 65
Sp01LeR писал(а):
Эх, не хотелось растраивать кВиталия, хотя он же и начал этот эксперимент, а, как известно, "шовмастгоон" - короче, качайте и тестируйте.

Так, а чем расстраивать то? MSVS 2008 C++ 8 на моем компе считает за 1.5 сек, а 9 знаков за 8 секунд, при размере ехе 1.5 Кб

А твой gcc 4.4 при весе 45 кб(! это даже для GUI много, не говоря уж о консольке) выполнял туже работу 2, 262 и 22,84 секунды соответственно, что более чем в 2 раза медленнее, и сопоставимо с Пуриком. Теперь прибавим к этому несносный Си-шный синтаксис ( уже только из за этого gcc Пурику НЕ КОНКУРЕНТ) и получим вопрос - а в чем собственно преимущество? Хотя у этого компилятора есть фишка "увеличить производительность обычных приложений на многоядерных процессорах, созданных без использования специальных библиотек распараллеливания " но мне без разницы, у меня проц 1-ядерный :D Ну и судя по высказыванию Петра это не работает.


Да и самое главное - эксперимент был не в том, что бы определить крутость компилятора, а в том, что бы определить крутость компьютера ( см. первый пост). Компиляторы сравнивать начал puremaster.

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 3:12 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11707
Благодарил (а): 4 раз.
Поблагодарили: 512 раз.
kvitaliy писал(а):
в том, что бы определить крутость компьютера
Тогда нужно было создавать многопоточное приложение, с числом потоков, не менее 12 и по ганять данные в памяти, заодно проверить скорость работы винта и видюхи.
А сейчас, в основном проверяется скорость работы процессора и сопроцессора (если кто не вкурсе, именно сопроцессор занимается работой с дробными числами).
Правда, этот тест не совсем корректно выполняется, т. к. мой двухядерник показал хучшие результаты, чем одноядерный процессор Виталия.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 4:40 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11707
Благодарил (а): 4 раз.
Поблагодарили: 512 раз.
Этот код больше подходит для тестирования многоядерных процессоров.

Вот мой результат:
Изображение


Вложения:
CPU_Test.rar [30.5 KiB]
Скачиваний: 307

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 5:10 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6650
Благодарил (а): 36 раз.
Поблагодарили: 234 раз.
Пункты репутации: 65
Пётр писал(а):
Этот код больше подходит для тестирования многоядерных процессоров.

Ну ну! Больше так больше... Вот мой результат:

Изображение

Так что мой проц все равно круче :D

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 5:20 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11707
Благодарил (а): 4 раз.
Поблагодарили: 512 раз.
kvitaliy писал(а):
Так что мой проц все равно круче
Какая тактовая частота системной шины, процессора, памяти?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 23, 2010 6:06 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6650
Благодарил (а): 36 раз.
Поблагодарили: 234 раз.
Пункты репутации: 65
Пётр писал(а):
Какая тактовая частота системной шины, процессора, памяти?


Этому компу уже лет 5 наверно. И память старинная и частоты древние.

Цитата:
Системная плата:
Тип ЦП AMD Athlon 64, 2200 MHz (11 x 200) 3500+
Системная плата ECS nForce4-A939 (3 PCI, 2 PCI-E x1, 1 PCI-E x16, 4 DDR DIMM, Audio, Gigabit LAN)
Шина 800 МГц
Чипсет системной платы nVIDIA nForce4, AMD Hammer
Системная память 1536 Мб (PC3200 DDR SDRAM)
DIMM1: M2G9IAHAMK9F0811A4 256 Мб PC3200 DDR SDRAM (2.5-3-3-8 @ 200 МГц)
DIMM2: M2G9IAHAMK9F0811A4 256 Мб PC3200 DDR SDRAM (2.5-3-3-8 @ 200 МГц)
DIMM3: Hynix HYMD564 646CP8RD43 512 Мб PC3200 DDR SDRAM (3.0-3-3-8 @ 200 МГц) (2.5-3-3-7 @ 166 МГц) (2.0-2-2-6 @ 133 МГц)
DIMM4: Hynix HYMD564 646CP8RD43 512 Мб PC3200 DDR SDRAM (3.0-3-3-8 @ 200 МГц) (2.5-3-3-7 @ 166 МГц) (2.0-2-2-6 @ 133 МГц)


Я давно подозревал, что главное в процессоре - это частота. Остальное ловкий маркетинговый ход, что бы вытянуть деньги с людей. Ну и ещё стоит отметить, что процессоры АМД лучше работают с математикой, видимо по этому и быстрее Интелловских в играх.

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 24, 2010 6:55 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 18, 2009 3:41 am
Сообщений: 1126
Благодарил (а): 86 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 24, 2010 8:35 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн сен 07, 2009 10:00 pm
Сообщений: 1046
Откуда: Николаев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Изображение

_________________
www.mirashic.narod.ru
Первое знакомство с PB


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 89 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB