Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Все верно - использование макро примерно на 30% дольше. Но ты бы хотел ждать отчет 4 часа вместо 3-х только потому, что у автора исходники получаются короче? (к тому же не обязательно считать, во сколько раз, можно - на сколько секунд/минут/часов. А здесь уж все зависит от количества циклов и количества макро в цикле) Исправлено 1 раз(а). Последнее : akvvohinc, 21.12.17 20:38 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Сергей, за 30% (процент с доверительным интервалом каким?), при наших временах (1 сут. иногда) не сильно важен. Важно получить адекватный результат, и чтобы при переделке програмер быстро починил, изменил, поэтому краткость текста проги (и хороший коммент, зачем именно так сделано) важнее кошерности текса.
Т.е. вопрос "Но ты бы хотел ждать отчет 4 часа вместо 3-х только потому, что у автора исходники получаются короче?" не полностью многомерен... Исправлено 1 раз(а). Последнее : of63, 21.12.17 20:45 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Сам суди, чтобы дать тебе цифру не совсем с потолка, я убрал из цикла все лишнее:
У меня обычно результат получается в интервале 31..33 % Исправлено 1 раз(а). Последнее : akvvohinc, 21.12.17 21:07 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Хорошо, твоя правда, примем за разницу в скоростях (в обращении к полю курсора ) "макро-EVAL" в 1/1.33, в пользу EVALUATE, согласен )
Доб. Попробуй поменять местами проверки макро-EVAL, интересно, влияет очередность применения, ну, буферизация винды и фокса всякие... Доб2. Это не причем, читаем из буфера. тут вроде просто затраты фокса на интерпретацию макроса, или EVAL... Исправлено 2 раз(а). Последнее : of63, 21.12.17 21:33 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Если 0.001*1.33, то о чем говорим? Cмены кадра не увидим.
А реально, там и 0.001 с натяжкой. Если сверху без оператора цикла... Другое дело, автору нужно умножить на 10^7! Самое время поизголяться с Eval'ом. Одно дело миллионеру отдавать 30% с дохода, другое - нищему, вообще, без дохода Исправлено 5 раз(а). Последнее : Ydin, 27.12.17 16:23 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Нормальное сравнение, может и правда, что EVAL несколько (33%) быстрее чем макро...:
Доб... Добавить "m." интересно что изменит? = EVALUATE("m." + x+'.f1') Исправлено 1 раз(а). Последнее : of63, 21.12.17 21:59 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Я сделал 10^7, чтобы точнее получить результат. А в остальном - у нас у всех разные задачи случались в жизни. У нас были расчеты, которые даже на первых пентиумах считались до 8 часов, поэтому "бороться за время" для меня давняя привычка. А макро применяю лишь там, где иначе нельзя, не задумываясь - цикл/не цикл, доля секунды или минуты. По-моему, просто нет смысла использовать худшее (хоть на копейку, хоть на рубль), если без всяких доп.затрат можно выбрать лучшее. Исправлено 1 раз(а). Последнее : akvvohinc, 21.12.17 22:02 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() Вопрос не по теме. До каких максимальных времен выполнения расчетов вы поднимались? )
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Я уже точно не помню, но примерно те же расчеты еще на 286-х считались, бывало, около суток (в зависимости от объемов данных, конечно). Тема - ЖКХ.
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
У нас нормально, ок 1 сек на человека, начислить (пересчитать ИД), налогообложить (это значит прочитать всю его историю, и выплаты, и ИД посмотреть, и вычеты), то так и выходит... много часов
Я клоню, что фокс ведь на одном ядре процессора крутится. Ядро достигло физического максимума скорости - 2 ГГц... Интересно, кто как борется за повышение скорости обработки данных "на порядок". Поэтому и возник спор у нас, "что быстрее"... Но 30% детали - это несущественно. Исправлено 2 раз(а). Последнее : of63, 21.12.17 22:16 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Когда-то я проводил подобные эксперименты. И если правильно помню, то добавка "m." увеличивает время исполнения, но вот на сколько - не помню. Видимо, не существенно, раз я этой добавкой пользуюсь. -------- Сейчас проверил - разницы не заметил. Какой вариант ставишь первым, тот проигрывает с разницей менее 1%. Исправлено 1 раз(а). Последнее : akvvohinc, 21.12.17 22:19 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Вобщем, Сергей, хорошо поспорили ни о чем
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
leonid Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
На самом деле макро замедляет более, чем в два раза. Пример нужно было написать немного не так:
P.S. Кстати, если закоментировать строчки внутри обеих циклов, можно примерно узнать, во сколько раз замедляет макро на самом деле. Исправлено 1 раз(а). Последнее : leonid, 21.12.17 22:22 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Леонид, не понял в чем тонкость:
FOR m.i=1 TO 10^5 = &x..f1 ENDF&z FOR m.i=1 TO 10^5 = EVALUATE(x+'.f1') ENDFOR Я убрал измерители времени, и количество оборотов FOR... Вы ловите "фишки" фокса м.б. всего лишь? (детали выполнения команды & и EVAL) ...И что это такое FOR m.i=1 TO 10^5 = &x..f1 ENDF&z Исправлено 1 раз(а). Последнее : of63, 21.12.17 22:24 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
leonid Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
Замечанием в P.S. я хотел подчеркнуть, что на самом деле команда, в которой есть макрос, может выполняться в 10 - 15 раз медленнее, чем аналогична команда без макроса. Меньшая разница у akvvohinc получилась потому, что в его коде есть и другие команды, без макросов.
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Это я понял! Приведи пример, когда макрос (&) выполняется на ПОРЯДОК дольше чем EVAL, тогда поверю, что EVAL - это что-то принципиально другое в фоксе, чем & (в рантайме в т.ч.)
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
Taran Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
А ежели пойти классическим путем, то и макро и евал остаются позади конкретно
ну и ежели по возможности вынести SELECT за FOR...ENDFOR, то вообще ахтунг
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
leonid Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
Не вижу, чтобы я где-нибудь такое писал. EVAL тоже не самая быстрая команда. На порядок вряд ли получится. Ну а в три раза - пожалуйста. По-моему это более, чем достаточно.
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
хм... наблюдаю разные картины при ЭЛЕМЕНТАРНЫХ изменениях:
CREATE CURSOR c1 (f1 i) x = "''" z = 'OR' *!* LOCAL m.sec *!* m.sec = SECONDS() FOR m.i=1 TO 10^5 = &x ENDF&z t1 = SECONDS()-m.sec ? t1 m.sec = SECONDS() FOR m.i=1 TO 10^5 = EVALUATE(x) ENDFOR t2 = SECONDS()-m.sec ?t2 ? ROUND(t1*100/t2-100,1),'%' ТАМ ВВЕРХУ ЗАРЕМАРИЛ/ОТРЕМАРИЛ - и все меняется на в полраза! Вы там как эксперименты ставите, по первому отсчету делаете доклад?! Исправлено 1 раз(а). Последнее : of63, 21.12.17 23:12 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
leonid Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
Запустил Ваш код, и действительно все изменилось, только не в полтора раза, а значительно кардинальней. |
© 2000-2024 Fox Club  |