Вверх ↑
Этот топик читают: Гость
Ответов: 750
Рейтинг: 111
#271: 2012-06-13 12:34:27 ЛС | профиль | цитата
iarspider писал(а):
Ну да лучше поздно, чем никогда.

Я уже думал что - никогда
карма: 1

0
Ответов: 5446
Рейтинг: 323
#272: 2012-07-01 03:05:37 ЛС | профиль | цитата
Задача №8 - Кипричные стены - открыта. Эту же задачу я предлагаю и Младшей Лиге. Для общего удобства закрытие задачи будет происходить одновременно в обоих Лигах, а отсчёт 2 недель будет от последнего решения в любой из Лиг.

------------ Дoбавленo в 03.05:
Часто встречающиеся ошибки (во всех задачах):
1. Если в условии сказано, что (например) N < 51, то проверять это условие не требуется - оно заведомо выполнено
2. Присылайте только сам мультик (MultiElementEx) решения - ваша проверятельная схема мне не нужна
3. В комментарии к присылаемому мультику не забывайте менять "iarspider" на свой ник

Удачи в решении задачи!
карма: 1

0
Ответов: 5446
Рейтинг: 323
#273: 2012-07-02 04:35:16 ЛС | профиль | цитата
Благодаря nesco обнаружил, что для HiAsm-а нужно облегчить задачу - L<46 вместо L<50 (иначе - переполнение знакового типа). В связи с этим я готов от каждого участника (как уже приславшего решение, так и ещё решающего) принять 2 решения, и в зачёт поставить самое быстрое.
карма: 1

0
Ответов: 750
Рейтинг: 111
#274: 2012-07-02 10:46:17 ЛС | профиль | цитата
iarspider, Посмотри ЛС
Проверял для 50 у меня проходит
карма: 1

1
Голосовали:iarspider
Разработчик
Ответов: 4668
Рейтинг: 420
#275: 2012-07-02 11:25:28 ЛС | профиль | цитата
Попробовал ночью поразмышлять, сейчас дошли руки. Принимай, iarspider
карма: 10
2
Голосовали:iarspider, miver
Ответов: 5446
Рейтинг: 323
#276: 2012-07-02 19:31:34 ЛС | профиль | цитата
Вроде всем ответил в ЛС, ежели кого пропустил - отметьтесь тут, исправлюсь
карма: 1

0
Ответов: 16412
Рейтинг: 1210
#277: 2012-07-09 15:18:34 ЛС | профиль | цитата
iarspider, IC + ASM сбросил в ЛС. Просто для сравнения.
Теоретически затраты тиков процессора на ASM вставку при :
L=1........151 тик
L=45......1295 тиков
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 750
Рейтинг: 111
#278: 2012-08-06 11:19:31 ЛС | профиль | цитата
iarspider, Где можно посмотреть решения задачи №8
карма: 1

0
Ответов: 1761
Рейтинг: 158
#279: 2012-08-06 11:50:38 ЛС | профиль | цитата
miver,
Ex_, лови архив

карма: 5

0
Ответов: 8270
Рейтинг: 773
#280: 2012-08-06 17:38:55 ЛС | профиль | цитата
Tad писал(а):
L=1........151 тик
L=45......1295 тиков
Давно уже не измерял тики Записывал на VBA операции сложения до.. и после, удивило: разность, т. е. длительность операции всегда чётная и друг от друга эти разности отличаются на величину кратную четырём, отсюда я и сделал вывод, что тики, т. е. частота генератора и такты процессора разные вещи, один такт формируется из четырёх тиков для получения сдвинутых по времени сигналов: 1-ый "Выполнить операцию" и 2-ой "Прочитать результат". Вспомните 580 серию, тактовая частота 2 МГц из двух сдвинутых по фазе импульсов получалась из 18 МГц делением на 9, а тики - не более чем маркетинговый ход, ведь 2 ГГц куда как больше несчастных 500 МГц
карма: 14

0
Ответов: 16412
Рейтинг: 1210
#281: 2012-08-06 21:43:10 ЛС | профиль | цитата
Леонид писал(а):
Давно уже не измерял тики
А я никогда и не мерял. Есть таблица затрат тактов на конкретную операцию.
Например команда:
ADD регистр,регистр выполняется за 3 такта процессора
ADD память,регистр выполняется за 31-38 тактов процессора (в зависимости от вида адресации памяти)
Такт процессора — промежуток между двумя импульсами тактового генератора, который синхронизирует выполнение всех операций процессора.


В выложенной мной табличке слово "тик" нужно заменить на "такт процессора" (почему так написал - сам не знаю ).

В продолжение. Считаем такты процессора:
Add(MainForm,2953706,63,98)
{
Height=144
}
Add(InlineCode,8089376,189,98)
{
WorkPoints=#6:doTact|6:doStop|
EventPoints=#6:onTact|
Code=#15:unit HiAsmUnit;|12:// Autor Tad|0:|9:interface|0:|22:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|13: n,k:Int64;|9: public|20: onTact:THI_Event;|50: procedure doTact(var _Data:TData; Index:Word);|50: procedure doStop(var _Data:TData; Index:Word);|5: end;|1: |0:|14:implementation|0:|28:function GetCPUTacts: int64;|3:asm|7: RDTSC|4:end;|0:|30:procedure THiAsmClass.doTact;|5:begin|18: n:=GetCPUTacts; |4:end;|0:|30:procedure THiAsmClass.doStop;|5:begin|19: k:= GetCPUTacts-n;|23: _hi_OnEvent(onTact,k);|4:end;|4:end.|
link(onTact,5124980:doString,[])
}
Add(Hub,5848884,161,98)
{
link(onEvent1,8089376:doTact,[])
link(onEvent2,8089376:doStop,[])
}
Add(Button,11619364,112,98)
{
Left=30
Top=25
link(onClick,5848884:doEvent1,[])
}
Add(Label,10380760,294,98)
{
Left=20
Top=70
}
Add(FormatStr,5124980,238,98)
{
DataCount=1
Mask="На выполнение кодов Hub + InLine затрачено %1 тактов процессора."
link(onFString,10380760:doText,[])
}
Компилировать FPC или Delphi 7 (Delphi 4 не понимает)
У всех должно получиться около 1000 тактов при FPC и около 500 для DELPHI 7
(зависит от типа (архитектуры) процессора, а не от его тактовой частоты)

Зная тактовую частоту процессора, можно посчитать время.

карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 384
Рейтинг: 151
#282: 2012-08-07 12:41:25 ЛС | профиль | цитата
Tad писал(а):
У всех должно получиться около 1000 тактов
Результат запуска 10 раз (проц Intel Pentium Dual-Core E5300) Win XP FPC
741
1625
741
689
728
702
715
676
689
728
карма: 3

0
Ответов: 16412
Рейтинг: 1210
#283: 2012-08-07 13:21:03 ЛС | профиль | цитата
Tad писал(а):
зависит от типа (архитектуры) процессора
Сейчас идет в основном борьба не за увеличение тактовой частоты, а больше за уменшение числа тактов на операцию.
Ё-моё = AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ 2.50 GHz Win7
FPC писал(а):
879
881
935
925
913
866
882
977
891
899

Delphi 7 писал(а):
524
524
523
403
546
523
523
523
524
671
------------ Дoбавленo в 13.20:
Кто бы отрезал ????? (начиная с Леонида)
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1729
Рейтинг: 66
#284: 2012-08-07 13:27:06 ЛС | профиль | цитата
Tad,

AMD Athlon 64 x2 Dual-Core 1.9 GHz WinXP SP2 x86
FPC
862
862
853
813
825
846
845
825
842
840

Delphi
401
401
451
401
401
401
571
401
402
402
карма: 1

0
Ответов: 16412
Рейтинг: 1210
#285: 2012-08-07 13:52:21 ЛС | профиль | цитата
Cosinus, [flood]если на компе установлена Delphi 7, то без проблем. [/flood]
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)