|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.02.2013, 23:03 | #11 |
Пользователь
Регистрация: 16.02.2013
Сообщений: 53
|
Stilet, Вы ещё со вставкой произвольного количества нопов перед циклами поизвращайтесь и посмотрите, как от этого количество тиков меняться будет. Смысл - в выравнивании линий кэша.
|
16.02.2013, 23:15 | #12 | |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Код:
Так что вопрос к winhttp: в каких условиях сравнивать? Цитата:
|
|
16.02.2013, 23:17 | #13 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
ИМХО нужно те приведенные выше коды посмотреть в дизассемблере. Тогда будет понятнее. Цитата:
Хотя не спорю - с какой оптимизацией компилировалось нигде не уточняется.
I'm learning to live...
|
||
16.02.2013, 23:23 | #14 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Что касается ассемблерного кода, там не надо finit в цикле (fstp st для выталкивания результата) и надо fild, а не fld. У меня после этого в 6 (!) раз быстрее стало.
Код:
|
16.02.2013, 23:25 | #15 |
Пользователь
Регистрация: 16.02.2013
Сообщений: 53
|
Вот тоже статья на эту тему:
http://www.gotdotnet.ru/blogs/gsaf/2872/ |
16.02.2013, 23:34 | #16 | |
Пользователь
Регистрация: 16.02.2013
Сообщений: 53
|
Цитата:
|
|
16.02.2013, 23:40 | #17 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
в С# не силен, но могу предположить, что Math.sin не использует FPU и в ущерб точности делает полиномиальный фит по табличным значениям. Думаю, что если для С++ разрешить использование SSE в настройках компилятора, то цифры немного изменятся.
|
17.02.2013, 00:07 | #18 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
http://ideone.com/LN6a2t
время: 0.16s Haskell быстрее чем C++ и C# вместе взятые? Это всё к тому, что один язык не может быть быстрее другого, это же языки, всё равно, что говорить, что русский быстрее английского. Разницу в производительности дают реализации (компиляторы, интерпретаторы) и прямые руки программиста. |
17.02.2013, 11:12 | #19 | |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
На моей машине такие результаты для вышеприведенного кода:
Цитата:
MonoDevelop 3.0.3.2 gdc 4.6.3 gcc версия 4.7.2 GHC version 7.4.2 Проц Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz Правда с Хаскелем сравнивать не честно, он все заранее посчитал =) |
|
17.02.2013, 23:05 | #20 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Не совсем так, можно сделать, чтобы кол-во итераций вводилось с консоли, скорость не изменится. Да и тогда бы он компилировал доолго, чтобы всё посчитать, а у меня компиляция занимает пару секунд. Скорее всего компилятор понял, что значение внутреннего foldl' будет всегда одно и то же, и посчитал его только один раз, после чего 100 раз сложил это число само с собой внешним foldl'. Это возможно за счёт гарантии чистоты функций и неизменяемости контекста.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
в чем ошибка ?? | SuperHuman | Общие вопросы C/C++ | 3 | 04.06.2012 21:30 |
Почему Excel 2010 выполняет поиск гораздо медленнее чем Excel 2003 | Sprat | Microsoft Office Excel | 1 | 25.10.2011 05:34 |
Во общем надо написать программу "дождь"...и чтоб некоторые капельки двигались быстрее, другие медленнее. | zzz6 | Помощь студентам | 6 | 07.07.2011 10:57 |
В Excel 2010 макрос медленнее в 3 раза чем в 2007 | Владимир. | Microsoft Office Excel | 12 | 22.05.2010 18:24 |
В чем ошибка? | delphyok | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 24.02.2009 23:33 |