Форум Всеукраїнської інтернет-олімпіади NetOI


На форумі обговорюються лише питання, пов'язані з олімпіадою

Ви не зайшли.

#51 2005-12-20 03:03:48

Sharp
Олімпієць
Зареєстрований: 2005-10-17
Повідомлень: 34

Re: Умные люди

db 0Fh, db 31h - это называется RDTSC smile Мерять через него правильнее, чем через GetProcessTimes, т.к. в его случае происходит переключение на ядро, которое отнимает довольно много тактов, но нужно присвоить процессу приоритет REALTIME_PRIORITY_CLASS, а его главному треду THREAD_PRIORITY_TIME_CRITICAL

Поза форумом

 

#52 2005-12-20 08:51:36

ROBOT
Олімпієць
Звідки: Ялта
Зареєстрований: 2005-10-26
Повідомлень: 158

Re: Умные люди

reiten написав:

Код:

double TestSystem::run_time(HANDLE hProcess)
{
    FILETIME startt,endt,syst,ut;
    SYSTEMTIME time;
    if(!GetProcessTimes(hProcess,&startt,&endt,&syst,&ut))
    {
        if(DoLogs)fprintf(logs,"Can't get process times. GetLastError()=%u\n",GetLastError());
        throw TestException("Can't get process times");
    }
    FileTimeToSystemTime(&ut,&time);
    return time.wMilliseconds*0.000001+time.wSecond+time.wMinute*60.0+
        time.wHour*3600.0;
}

Вот так надо мерять. По системному времени.

А я делал Gettickcount перед запуском проги и после завершения и вычитал...


I have Delphi 7, BP 7.0, FP 1.0.4, Windows XP
Мои решения олимпиад на  Паскале: http://h0h0l.narod.ru/
Моя проверялка: http://www.proveryalka.narod.ru/
ICQ: 266367671

Поза форумом

 

#53 2005-12-20 14:19:31

jack_spektor
Олімпієць
Звідки: Украина Одесса
Зареєстрований: 2005-11-12
Повідомлень: 116
Вебсайт

Re: Умные люди

Я никак не пойму:чем вам now не подходит.


Delphi IT!!!
Мой сайт:http:\\mr-kody.blogspot.com

Поза форумом

 

#54 2005-12-20 14:31:35

ROBOT
Олімпієць
Звідки: Ялта
Зареєстрований: 2005-10-26
Повідомлень: 158

Re: Умные люди

А ещё лучше - измерить кол-во простейших операций в проге, а не время


I have Delphi 7, BP 7.0, FP 1.0.4, Windows XP
Мои решения олимпиад на  Паскале: http://h0h0l.narod.ru/
Моя проверялка: http://www.proveryalka.narod.ru/
ICQ: 266367671

Поза форумом

 

#55 2005-12-20 14:37:08

jack_spektor
Олімпієць
Звідки: Украина Одесса
Зареєстрований: 2005-11-12
Повідомлень: 116
Вебсайт

Re: Умные люди

ROBOT написав:

А ещё лучше - измерить кол-во простейших операций в проге, а не время

Мечтать не вредно...
Как это ты интересно будеш измерять кол-во операций в екзешнике?


Delphi IT!!!
Мой сайт:http:\\mr-kody.blogspot.com

Поза форумом

 

#56 2005-12-20 14:46:45

ROBOT
Олімпієць
Звідки: Ялта
Зареєстрований: 2005-10-26
Повідомлень: 158

Re: Умные люди

jack_spektor написав:

ROBOT написав:

А ещё лучше - измерить кол-во простейших операций в проге, а не время

Мечтать не вредно...
Как это ты интересно будеш измерять кол-во операций в екзешнике?

Никак нельзя?..Жаль...


I have Delphi 7, BP 7.0, FP 1.0.4, Windows XP
Мои решения олимпиад на  Паскале: http://h0h0l.narod.ru/
Моя проверялка: http://www.proveryalka.narod.ru/
ICQ: 266367671

Поза форумом

 

#57 2005-12-20 14:59:02

ROBOT
Олімпієць
Звідки: Ялта
Зареєстрований: 2005-10-26
Повідомлень: 158

Re: Умные люди

jack_spektor написав:

Я никак не пойму:чем вам now не подходит.

now - часы-минуты-секунды
gettickcount - миллисекунды без всяких часы-минуты


I have Delphi 7, BP 7.0, FP 1.0.4, Windows XP
Мои решения олимпиад на  Паскале: http://h0h0l.narod.ru/
Моя проверялка: http://www.proveryalka.narod.ru/
ICQ: 266367671

Поза форумом

 

#58 2005-12-20 17:21:55

reiten
журі
Звідки: Киев
Зареєстрований: 2005-10-16
Повідомлень: 196

Re: Умные люди

То, что я написал, меряет, сколько реально программа занимала процессор(по данным форточек). Точнее вы не получите.


"...Существуют два подхода к проектированию программ. В одном архитектура делается настолько простой, что в ней явно нет дефектов; в другом - настолько сложной, что в ней нет явных дефектов".
С. А. Хоар

Поза форумом

 

#59 2005-12-21 03:41:14

Sharp
Олімпієць
Зареєстрований: 2005-10-17
Повідомлень: 34

Re: Умные люди

Форточки считают тем же RDTSC, но дополнительно тратят время на изменение счетчиков, синхронизацию доступа и прочие вещи, жизнь и точность измерений сокращающие.

Поза форумом

 

#60 2005-12-21 14:12:23

ROBOT
Олімпієць
Звідки: Ялта
Зареєстрований: 2005-10-26
Повідомлень: 158

Re: Умные люди

reiten написав:

Код:

double TestSystem::run_time(HANDLE hProcess)
{
    FILETIME startt,endt,syst,ut;
    SYSTEMTIME time;
    if(!GetProcessTimes(hProcess,&startt,&endt,&syst,&ut))
    {
        if(DoLogs)fprintf(logs,"Can't get process times. GetLastError()=%u\n",GetLastError());
        throw TestException("Can't get process times");
    }
    FileTimeToSystemTime(&ut,&time);
    return time.wMilliseconds*0.000001+time.wSecond+time.wMinute*60.0+
        time.wHour*3600.0;
}

Вот так надо мерять. По системному времени.

А это на Си?


I have Delphi 7, BP 7.0, FP 1.0.4, Windows XP
Мои решения олимпиад на  Паскале: http://h0h0l.narod.ru/
Моя проверялка: http://www.proveryalka.narod.ru/
ICQ: 266367671

Поза форумом

 

#61 2005-12-21 18:46:04

reiten
журі
Звідки: Киев
Зареєстрований: 2005-10-16
Повідомлень: 196

Re: Умные люди

Sharp написав:

Форточки считают тем же RDTSC, но дополнительно тратят время на изменение счетчиков, синхронизацию доступа и прочие вещи, жизнь и точность измерений сокращающие.

Почитай МСДН! В 4-м параметре GetProcessTimes возврачает количество времени, отведеного ею для процесса. Без своих операций. Даже время системных вызовов не учитывается. Лучше ты не замеряешь.


"...Существуют два подхода к проектированию программ. В одном архитектура делается настолько простой, что в ней явно нет дефектов; в другом - настолько сложной, что в ней нет явных дефектов".
С. А. Хоар

Поза форумом

 

#62 2005-12-21 18:47:50

reiten
журі
Звідки: Киев
Зареєстрований: 2005-10-16
Повідомлень: 196

Re: Умные люди

ROBOT написав:

А это на Си?

Да. Вернее это - кусок проги на С++.


"...Существуют два подхода к проектированию программ. В одном архитектура делается настолько простой, что в ней явно нет дефектов; в другом - настолько сложной, что в ней нет явных дефектов".
С. А. Хоар

Поза форумом

 

#63 2005-12-21 23:13:18

jack_spektor
Олімпієць
Звідки: Украина Одесса
Зареєстрований: 2005-11-12
Повідомлень: 116
Вебсайт

Re: Умные люди

У нас на курсах мы время меряли с помощью time(NULL)


Delphi IT!!!
Мой сайт:http:\\mr-kody.blogspot.com

Поза форумом

 

#64 2005-12-22 23:41:43

reiten
журі
Звідки: Киев
Зареєстрований: 2005-10-16
Повідомлень: 196

Re: Умные люди

Не знаю, на каких курсах и что вы мерили, но то, что я написал меряет точно и правильно. В этом я уверен.


"...Существуют два подхода к проектированию программ. В одном архитектура делается настолько простой, что в ней явно нет дефектов; в другом - настолько сложной, что в ней нет явных дефектов".
С. А. Хоар

Поза форумом

 

#65 2005-12-23 13:15:47

ROBOT
Олімпієць
Звідки: Ялта
Зареєстрований: 2005-10-26
Повідомлень: 158

Re: Умные люди

reiten написав:

Не знаю, на каких курсах и что вы мерили, но то, что я написал меряет точно и правильно. В этом я уверен.

Если не трудно, переведи на делфы...


I have Delphi 7, BP 7.0, FP 1.0.4, Windows XP
Мои решения олимпиад на  Паскале: http://h0h0l.narod.ru/
Моя проверялка: http://www.proveryalka.narod.ru/
ICQ: 266367671

Поза форумом

 

#66 2005-12-23 13:19:56

ROBOT
Олімпієць
Звідки: Ялта
Зареєстрований: 2005-10-26
Повідомлень: 158

Re: Умные люди

Кстати для паскаля:

Код:

var old:longint;
curtime:longint absolute $40:$6c;
begin]
old:=curtime;
{code}
write('PROGA RABOTALA ',55*(curtime-old),' ms');
end.

I have Delphi 7, BP 7.0, FP 1.0.4, Windows XP
Мои решения олимпиад на  Паскале: http://h0h0l.narod.ru/
Моя проверялка: http://www.proveryalka.narod.ru/
ICQ: 266367671

Поза форумом

 

#67 2005-12-23 18:21:33

reiten
журі
Звідки: Киев
Зареєстрований: 2005-10-16
Повідомлень: 196

Re: Умные люди

ROBOT написав:

Если не трудно, переведи на делфы...

Прости, но я Делфы не знаю. Я в паскалем и всеми его ипостасями на очень дружу. Могу только словами пояснить.
Функция GetProcessTimes принимает 4 параметра типа PFILETIME. Тебя интересует 4-й - время, которое работала пользовательская прога.
Потом с помощью FileTimeToSystemTime преобразовываешь FILETIME в SYSTEMTIME. Из SYSTEMTIME берешь соответствующие поля.


"...Существуют два подхода к проектированию программ. В одном архитектура делается настолько простой, что в ней явно нет дефектов; в другом - настолько сложной, что в ней нет явных дефектов".
С. А. Хоар

Поза форумом

 

#68 2005-12-24 05:19:25

Sharp
Олімпієць
Зареєстрований: 2005-10-17
Повідомлень: 34

Re: Умные люди

reiten написав:

Sharp написав:

Форточки считают тем же RDTSC, но дополнительно тратят время на изменение счетчиков, синхронизацию доступа и прочие вещи, жизнь и точность измерений сокращающие.

Почитай МСДН! В 4-м параметре GetProcessTimes возврачает количество времени, отведеного ею для процесса. Без своих операций. Даже время системных вызовов не учитывается. Лучше ты не замеряешь.

Ты ошибаешься. Возьми софтайс и посмотри.

Поза форумом

 

#69 2006-01-10 20:43:24

Yurok
Олімпієць
Зареєстрований: 2005-11-10
Повідомлень: 31

Re: Умные люди

ROBOT написав:

Кстати для паскаля:

Код:

var old:longint;
curtime:longint absolute $40:$6c;
begin]
old:=curtime;
{code}
write('PROGA RABOTALA ',55*(curtime-old),' ms');
end.

Дело в том, что это далеко не мс, это скорее ДЭЦИсекунды...

Поза форумом

 

#70 2006-01-11 18:16:49

Ivan
Олімпієць
Зареєстрований: 2005-10-09
Повідомлень: 218

Re: Умные люди

а) напиши об этом жюри.
б) сделай переадресацию писем с olymp.vinnica.ua на старом ящике :-)


ICQ 233-416-344

Поза форумом

 

#71 2006-01-11 19:33:55

reiten
журі
Звідки: Киев
Зареєстрований: 2005-10-16
Повідомлень: 196

Re: Умные люди

Народ! Кто-то знает, как под виндой(через винапи) скопировать файл так, чтобы, если надо, по пути к файлу создало еще не существующие папки? Тоесть надо скопировать файл 1. txt в папку TEST. Но папки TEST может и не оказаться. Тогда надо ее создать. Есть ли какой-то способ сделать это на автомате???


"...Существуют два подхода к проектированию программ. В одном архитектура делается настолько простой, что в ней явно нет дефектов; в другом - настолько сложной, что в ней нет явных дефектов".
С. А. Хоар

Поза форумом

 

#72 2006-01-11 20:05:15

Ivan
Олімпієць
Зареєстрований: 2005-10-09
Повідомлень: 218

Re: Умные люди

Хм. странно. мне всегда отвечали, если возникали какие-либо вопросы (по делу, конечно :-) ).
olymp@olymp.vinnica.ua


ICQ 233-416-344

Поза форумом

 

#73 2006-01-12 16:11:27

Art[ASoft]
Олімпієць
Звідки: Alexandriya
Зареєстрований: 2005-11-13
Повідомлень: 19
Вебсайт

Re: Умные люди

reiten написав:

Народ! Кто-то знает, как под виндой(через винапи) скопировать файл так, чтобы, если надо, по пути к файлу создало еще не существующие папки? Тоесть надо скопировать файл 1. txt в папку TEST. Но папки TEST может и не оказаться. Тогда надо ее создать. Есть ли какой-то способ сделать это на автомате???

К сожалению нельзя sad надо самому всё делать


Good lamer - dead lamer!
FOS for ever!

Поза форумом

 

#74 2006-01-13 09:16:07

ROBOT
Олімпієць
Звідки: Ялта
Зареєстрований: 2005-10-26
Повідомлень: 158

Re: Умные люди

jack_spektor написав:

ROBOT написав:

jack_spektor написав:

Согласен.Это надо исправить.Где-то в нете есть архиватор екзешников UPX называется.
Говорят сжимает очень сильно.
Я думаю на размер сильно смотреть не будут.

Качать не очень весело (особенно с модема...)

Конечно.Я ж ещё не закачал на ФТП установочный архив.Нета нема...
Так что пишу из интернет клуба...

До сих пор нет (error 403 нет доступа)


I have Delphi 7, BP 7.0, FP 1.0.4, Windows XP
Мои решения олимпиад на  Паскале: http://h0h0l.narod.ru/
Моя проверялка: http://www.proveryalka.narod.ru/
ICQ: 266367671

Поза форумом

 

#75 2006-01-14 10:31:01

Rybak
Олімпієць
Звідки: Киев, Украина
Зареєстрований: 2005-10-04
Повідомлень: 83
Вебсайт

Re: Умные люди

reiten написав:

Народ! Кто-то знает, как под виндой(через винапи) скопировать файл так, чтобы, если надо, по пути к файлу создало еще не существующие папки? Тоесть надо скопировать файл 1. txt в папку TEST. Но папки TEST может и не оказаться. Тогда надо ее создать. Есть ли какой-то способ сделать это на автомате???

В винде наверное нету, это сильно круто для апи. А в твоем языке может и есть. Скриншот из питона:

>>> print os.makedirs.__doc__
makedirs(path [, mode=0777])

    Super-mkdir; create a leaf directory and all intermediate ones.
    Works like mkdir, except that any intermediate path segment (not
    just the rightmost) will be created if it does not exist.  This is
    recursive.

Поза форумом

 

Нижній колонтитул

Powered by Likt
© Copyright 2002–2009 Likt