Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Вниз

Помяните меня в своих молитвах - в ближайшее время меня обрекли на Фортран =(   Найти похожие ветки 

 
iZEN   (2002-02-15 23:51) [40]

Так Java будем тестить или как? Примеры кодов подходящие, я их могу легко адаптировать.

Гм...в Java нет такого понятия как exe-файл -- его заменяет JAR-Executable, который, например в Windows Explorer, по щелчку мыши загужается в виртуальную ява-машину, в памяти распаковывается и исполняется (можно запустить из bat-файла: java.exe -jar MyApplication.jar
и весь вывод на консоль производится как в обычном Win-приложении.


 
iZEN   (2002-02-15 23:53) [41]

Дополнение к предыдущему сообщению.

Только нужна Sun JRE1.3 (~9Мб в дистрибутиве), но лучше новую версию JRE1.4 (она быстрее).


 
Фэ   (2002-02-16 01:02) [42]

Конечно будем, а также все у кого чего может считать и рассчитывать.

Отправил тест на Free Pascal (занятно по ср. с Delphi)


 
Фэ   (2002-02-16 01:05) [43]

И еще..
По результатам тестов можно выложить типовые алгоритмы в кладовку и хотя сайт о Дельфи, это будет полезно для всех.
Так, что тесты желательны из актуальных задач.


 
VuDZ   (2002-02-16 12:04) [44]

во блин попал - из шутки переросло в производство :)
1. есть предложение выкладывать всё это на каком-нибудь сайте, что бы все желающие могли протестировать скорость разных вариантов на своём компе.
2. вот на счёт доловного перевода алгоритма с паскаля на другие языки - млжет не стОит, лучше или входные:выходные данные или алгоритм
3. может сегодня же придумать несколько тестов, а не один, что бы было проще их реализовывать
4. для софта выставлять внутри или в taskManger"e Real Time Priority, правда гонял у себя много тестов при играющем winAMP"e или MP8.0 и разброса почти не было (но они то и проца почти не потребляют-с)
5. GetTickCount() пригоден только для измерений, длящихся > 1s, иначе у него разброс большой. Можно было бы использовать rdtsc
, но это уже извращение будет :)


> По результатам тестов можно выложить типовые алгоритмы в
> кладовку и хотя сайт о Дельфи, это будет полезно для всех.

где это видно было, что бы алгоритмы были лишними...


 
Фэ   (2002-02-17 11:00) [45]

Если Мерлинам не захочется, то могу держать на своем сайте

Открыл доступ
ftp.pi8plus.ru
login: ftpguest
psw: 123

Выкладывать буду на
ftp.pi8plus.ru/pub/download/compare/

1.На сортировке стоит откатать технологию, а затем подобрать
следующие алгоритмы, на которых можно изучить особенности работы тех или иных компиляторов.
2.Не обязательно останавливаться на exe.
Языковый диапазон сегодня достаточно широк и его обозначение тоже полезно.
3.
> вот на счёт доловного перевода алгоритма
Конечно, речь не о дословном переводе. Но хороший программер может, зная особенности работы своего компилятора, так составить исходник, что оптимизатор будет отдыхать. Ну и не надо пользоваться inline, asm внутри языков высокого уровня.
Когда обозначен и согласован очередной алгоритм, паскаль может сойти за псевдоязык при его опубликовании - вот о чем речь.

Если кому-то удасться использованием типовых языковых конструкций улучшить показатели, то такие варианты можно выкладывать, как примеры.
4.
> GetTickCount() пригоден только для измерений
Подбирая за счет числа циклов время одного теста > 2 сек получим
разброс не более 1 %.
Кроме того, обязательно повторять тест раз 10 - тогда можно отсечь промахи и задержки.

Вот пример:

[Header]
Compiler=Delphi 5.0 build 6.18 sp.1
CPU=P-III 1000EB
RAM=256M
Chip=i815EP-B
Tester=Fe
Test=Bubble Sort
Cycle=10000
Repeat=10
[Time]
Time1=1912
Time2=1950
Time3=1931
Time4=1946
Time5=1940
Time6=1946
Time7=1950
Time8=1940
Time9=1951
Time10=1945
[Result]
0=1.2505566701293E-5
9999=0.999936824198812

5.Ввести в выходной файл секцию для контрольных результатов
[Result]
0=
Nmax=

это для массивов, а для однострочного результата 0=

6.Выложил результаты для Delphi5, Free Pascal и шутки ради BP7
ftp.pi8plus.ru/pub/download/compare/

Если кому интересно - присоединяйтесь.


 
Фэ   (2002-02-17 11:07) [46]

Что-то в этом роде для пузырьковой сортировки:

const
N = 10000;
Kmax = 10;
var
A: array [0..N-1] of double;
x: double;
first,last,i,j,k: integer;
F: TextFile;
fname: string;
......
Randomize;
for i:=0 to N-1 do A[i] := Random;

first := GetTickCount;
for i := 0 to N-1 do
for j := 0 to N-1 do begin
if (A[i] < A[j]) then begin
x := A[i]; A[i] := A[j]; A[j] := x;
end;
end;
last := GetTickCount;

P.S. Кстати уже на этом "примитивном" примере уже сделал интересные выводы в отношении D5 и Free Pascal.


 
Mbo   (2002-02-17 11:18) [47]

Каковы выводы?


 
Фэ   (2002-02-17 19:50) [48]

А выводы такие(по анализу deasm)
D5 сч.циклов переворачивает (т.е. фактически делает downto)
Free Pascal оставляет Ваш вариант.

Промежуточную переменную D5 вынес в память, а FP сделал dword(те же 8 байт) и разместил в регистре.

В итоге здесь D5 проиграл FP (см на сайте результаты)


 
Фэ   (2002-02-17 19:52) [49]

Суда же выложил результаты тестирования интерпретирующих систем
ActivePerl и ActivePython для Win платформы.
Тоже занятно:

ftp.pi8plus.ru/pub/download/compare/



 
Фэ   (2002-02-17 20:11) [50]

Так, что господа Сишники, Курильщики Явы и пр., где Ваши варианты ?
Или ломка ?
Да и Fellomena затихла со своим Fortran..



 
VuDZ   (2002-02-17 22:09) [51]

я свой вариант отослал Fellomen"e - я юзаю обычно Intel C++ Compiler, который является наибыстрейшим компилятором... будет врем я- выложу на сайте


 
Fellomena   (2002-02-19 10:57) [52]

Спасибо всем кто прислал свои варианты.
Уже готовы результаты для VisualFortran 6.1.0 без оптимизации и для компилятора Delphi 6 - забавненько получилось ;)
Сегодня протестю С-шный код и результаты, думаю завтра кину сюда.




Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.006 c
3-79
Egor111
2002-03-04 21:35
2002.04.01
ADOConnection и иже с ним


3-41
iea
2002-03-07 12:20
2002.04.01
Teкущее значение записи в ADO?


14-312
Дмитрий_Б
2002-02-20 14:09
2002.04.01
Пересылка файлов по ЛВС


3-50
AndrewK
2002-03-05 15:35
2002.04.01
Как составить SQL запрос


1-182
Duce
2002-03-19 17:39
2002.04.01
Application.Terminate хотелось бы выполнить своевременно...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский