Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сверх скорость, ничего важного, только интерес 
:(
    Опции темы
Riddik
Дата 3.7.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Привет. Больше не буду доставать с теми задачами, это последний раз. smile

Просто интересует, как можно сделать сверхбыстро такую элементарную операцию, как сложение.

Вот самая первая "задача", надо просто сложить два числа. 

Интересен стал такой момент. В лучших решениях этой задачи находятся практически все на Pascal, делают они это за 0.001 сек.

На С++ такой код 
Код

#include <iostream>
int main()
{
register short a, b;
std::cin>>a>>b;
std::cout<<a+b;
return 0;
}


делает это за 0.015 сек.

Как можно побить рекорд Паскаля без ассемблера?
PM MAIL   Вверх
andrew_121
Дата 3.7.2009, 11:52 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



На Си


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
azesmcar
Дата 3.7.2009, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(Riddik @  3.7.2009,  11:47 Найти цитируемый пост)
Как можно побить рекорд Паскаля без ассемблера? 

По моему даже с ассемблером никак smile я проверил, он даже на пустую программу 0.015 секунд тратит.
Код

int main()
{
}

вот это проверь smile так что, даже думать не стоит
PM   Вверх
Riddik
Дата 3.7.2009, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Так и есть. 

Отчего же так?

Может, сейчас у них просто сервер загружен гораздо больше, чем тогда. Все те паскалевские результаты 2000-2004 в основном. smile
PM MAIL   Вверх
W4FhLF
Дата 3.7.2009, 12:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Сложение целых чисел осуществляется одной машинной командой add. Причём оба аргумента в регистрах. Померить "время" выполнения одной машинной команды на современных процессорах невозможно. Если верить мануалам от Intel'a то такое сложение выполняется за 1 такт. При этом, допустим, аргументы в регистры читаются из памяти, если эта память не лежит в кеше первого уровня, то операция чтения может занимать от сотен до тысяч тактов. Поэтому любые арифметические операции на фоне чтения из памяти есть капля в море, не говоря уже о выводе на экран. 



Это сообщение отредактировал(а) W4FhLF - 3.7.2009, 12:40


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GoldFinch
Дата 3.7.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



Riddik, там время работы программы а не время работы сложения
математика говорит, что если Y/X=0, то X+Y=X
в данном случае X - время работы не-сложения, Y- время работы сложения

очевидно проги на паскале грузятся быстрее

PM MAIL ICQ   Вверх
xvr
Дата 3.7.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Приведенный С++ код занимается вводом/выводом. Собственно сложение там занимает вообще незаметное время. Так что минимизировать надо именно ввод/вывод

PM MAIL   Вверх
GoldFinch
Дата 3.7.2009, 12:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



интересно, какая там ОС, 
и можно ли юзать 
#pragma comment(linker,"/entry:main")
PM MAIL ICQ   Вверх
Riddik
Дата 3.7.2009, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Цитата(GoldFinch @  3.7.2009,  12:16 Найти цитируемый пост)
очевидно проги на паскале грузятся быстрее

И как объяснить 49-ю, 52-ю, 53-ю и т.д. строчки?

Причём, ИМХО, именно 49-ый должен быть лучшим, т.к. памяти меньше всего расходовал. Может действительно ввод-вывод оптимизировали?


Это сообщение отредактировал(а) Riddik - 3.7.2009, 13:13
PM MAIL   Вверх
zim22
Дата 3.7.2009, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(GoldFinch @  3.7.2009,  12:31 Найти цитируемый пост)
интересно, какая там ОС, 

Цитата

C and C++ programs are compiled on the server by the 32-bit Intel C++ Compiler 7.0

http://acm.timus.ru/help.aspx?topic=cpp


--------------------
PM MAIL   Вверх
GoldFinch
Дата 3.7.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



zim22, я про ОС спросил, а не про компилятор
PM MAIL ICQ   Вверх
zim22
Дата 3.7.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(GoldFinch @  3.7.2009,  15:59 Найти цитируемый пост)
, я про ОС спросил, а не про компилятор

я думал, что этот компилятор только под Windows. ошибался.



--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.