Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
И почему же? Шутка.
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Чет вы меня совсем запутали.
При первом цикле m.sec не инициализирована. Ошибка должна вываливать. |
Re: Добавление записи из grid в текстовое поле | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Абсолютные результаты. Проценты выкинул. 26.9 16.9 13.5 2.5 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Код в фоксе - это просто машина, термодинамическая машина, в условиях выделения ей тиков ОС, в условиях интерпретации строк команд, и наличия уже интерпретированных, и все такое (там разрабы "ускоряли"). Вобще удивительно, как вы доверяете экспериментам над фоксом, НАД ЕДИНСТВЕННЫМ экспериметном
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4215 Откуда: Москва Дата регистрации: 11.11.2008 |
Уменьшить долю команд оформления цикла в общем времени можно путем увеличения количества строк внутри него - например, вместо одной строки с макро и EVAL() вставить 1000 таких строк.
Результирующий процент должен подрасти. Добавляя еще, в пределе мы, видимо, и получим процент, близкий к реальному для данной ситуации. Исправлено 4 раз(а). Последнее : akvvohinc, 22.12.17 01:09 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4215 Откуда: Москва Дата регистрации: 11.11.2008 |
Здесь он выглядит, может, и единственным, но в целом - многолетняя практика и многочисленные эксперименты, в том числе - на реальных данных. И в целом результаты не выглядят противоречивыми. |
Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4215 Откуда: Москва Дата регистрации: 11.11.2008 |
Такие конструкции, хоть и имеют право на жизнь, но "покрывают" слишком незначительное количество возможных случаев применения макро и EVAL(). Например, если в выражении понадобится по одному полю из нескольких таблиц, так просто уже не получится. А даже простое сохранение промежуточных результатов в переменные съест всё добытое преимущество во времени. В моей практике гораздо чаще в конструкции макро/EVAL() переменной частью являлось имя поля, а не таблицы. А поэтому избавиться и от макро, и от EVAL() подобным образом было нельзя. Исправлено 2 раз(а). Последнее : akvvohinc, 22.12.17 01:35 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну это понятно, что каждый волен сам. Я просто никогда не работаю напрямую с таблицами. Исключительно через курсоры. Соответственно ничто не мешает из нескольких таблиц получить данные в один курсор. Вероятно и имена полей привести к некоторому упорядоченному набору. Ежели они по той или иной причине не в порядке и могут быть "переменной частью". Ежели светит шестикратное увеличение производительности, то есть смысл поиграться с вариантами. Мне так кажется. ;) |
Re: Добавление записи из grid в текстовое поле | |
---|---|
akvvohinc Сообщений: 4215 Откуда: Москва Дата регистрации: 11.11.2008 |
Может быть. Но я пока не научился из нескольких несвязанных таблиц получать один курсор. Не будем выдумывать что-то новое. Предположим, что имя поля так же, как в нашем примере имя таблицы, уже известно к началу цикла и находится в той же переменной X. Задача та же - избавиться от макро и EVAL() внутри цикла, полагая, что именованным выражением обойтись нельзя. Например, надо добавить к значению этого поля 1, если оно больше 10. Что будем делать с именам полей этой таблицы, к какому упорядоченному набору приводить? Нет, шестикратное может светить только в таком искусственном примере. А на деле даже вариант №3 вряд ли найдет применение. Исправлено 1 раз(а). Последнее : akvvohinc, 22.12.17 04:41 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ежели внутренности цикла более одного раза используют макро, то и выигрыш будет больше. У нас в целом видимо чуток разный подход. Накидай пример (ежели есть интерес) с похожими данными и с макро или eval(). А там уж можно и поиграться. |
Re: Добавление записи из grid в текстовое поле | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Мерить скорость в винде, где постоянно крутятся 100500 случайных процессов, к тому же периодически и тоже случайно сует во все свой нос антивирус, да и еще туча всякой кучи...
Такое еще имело какой-то смысл в досе. Тем более само выполнение фоксовской команды SECONDS() даже на голом месте может давать разные результаты при всего лишь повторном запуске одного и того же. Помнится с Пивой еще когда-то обсуждали уже этот вопрос в какой-то теме. К тому же на фоне нынешнего монстро-программирования все эти миллисекунды вообще уже попросту смешны. Сегодня бедное железо не успевает выйти с завода, как на него тут же понаписывают гигатонны такого страшного софта, который крутится на нем с не меньшим скрипом, чем старый на предыдущем компе. Оптимизацией кода по-моему никто, кроме фокс-программистов уже и не занимается. Да и они не всегда. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Стабильность в фоксе все-таки есть. Например, вот статистика некая, ежемесячная,на нашем количестве выполнялась за 5 часов (+-0.5 часа). Народ привык: утром заказывают - вечером результат, или вечером заказываю - утром результат (как стулья вобщем). И вот что-то надо было доработать в статистике, доработал, попутно пришлось в фреймерке что-то усложнить, также по другим причинам фреймверк поменялся, и вдруг оказалось, что эта же статистика стала выполняться за 1 сутки (+- 1 час). Народ спрашивает "че поменялось-то", отвечаю "все поменялось". "Верни обратно в 5 часов" говорят, но фарш (фреймверк) невозможно провернуть назад... Иногда при помощи Coverage (и потом свертке ее результатов по строкам программы) можно было узнать, какая строка (подпрограмма) тратит основное время, и это оказывается обычная строка (самый внутренний FOR какой-нибудь, или подпрограмма безобидная), никак не связанная с макросом, просто строка бизнес-процесса, необходимая в таком количестве вызовов... Чтобы что-то "ускорить", то надо переписать этот кусок кода на машинном языке (на сях например), но че-то... проще сказать что "ну, 1 сутки, привыкайте к новым реалиям", точнее пока 1 сутки - допустимое время ожидания, то какой смысл переписывать прогу на другом языке (что малореально, даже на си там не перепишешь, все взаимозавязано в проекте, это не FOR суммирования числового ряда, а вызовы всякой бизнес-лабудени...)
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Около 4-х на гражданских интеловских процах. С оверклокингом - 7. |
Re: Добавление записи из grid в текстовое поле | |
---|---|
leonid Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
Специально для of63. Пример, где замена макро на EVALUATE увеличивает скорость кода примерно в 30 раз. На самом деле разница в скорости может быть практически любой, причем как в одну сторону, так и в другую.
Исправлено 1 раз(а). Последнее : leonid, 22.12.17 11:08 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
мда, действительно... странно...
А вот такой "нормальный" пример показывает разницу всего в 2 раза... причем тут скобки...:
Исправлено 2 раз(а). Последнее : of63, 22.12.17 11:50 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
И чего вы конкретно то в скорость упёрлись? Проблема макро далеко не только в "скорости работы". Это априори НЕЧИТАЕМЫЙ код. Да, EVAL иногда тоже бывает плохо читаемым, но не настолько насколько макро. Что делает тривиальная строка
В том то и дело что код с макро УЖАСЕН в плане сопровождения. И "краткость" тут совершенно мнимая. Если для понимания смысла одной единственной строки кода нужно "отмотать" 20-30 других строк, и держать в памяти пяток переменных с "командами", то это катастрофа. Можно безо всяких проблем. Наука статистика подсказывает как именно. Многократное повторение измерений, отбрасывание заведомо "выбивающихся из ряда", усреднение результатов и всё будет просчитано более чем надёжно. Тем более что помимо "просто скорости" в винде вполне можно снимать показания счётчиков производительности - сколько CPU скушал процесс, сколько памяти, сколько операций IO сделал... В досе ничего и близко подобного нет. Пока они остаются миллисекундами - да. Но когда они начинают выливаться в часы... Да даже банально в секунды, но в UI - когда пользователь "не понимает" пошёл процесс или нет, приняты его данные (пусть просто "в обработку", без ожидания конечного результата) или нет... Да, и это видно в объектом коде - посмотри на получаемые fxp. Да. Нет, он вообще ничего не "компилирует" - "вычисление выражений" совсем другой процесс, нежели компиляция или интерпретация кода. Потому то возможности EVAL гораздо "скромнее" нежели у макро. Зато они и гораздо более "специализированные", и потому быстрые и легче осознаваемые программистом при чтении кода. ------------------ WBR, Igor |
Re: Добавление записи из grid в текстовое поле | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Уверен, что тов.Симпле с легкостью докажет, что 1. Это и не нужно 2. Это можно реализовать и в досе. Исправлено 1 раз(а). Последнее : spinz, 22.12.17 14:22 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Т.е. ты его хочешь назвать знатоком механизмов работы различных ОС
А иначе чего стоят такого рода заявления? P.S. Вообще-то про это начал писать Криспа - но он тоже, вероятно, не очень в курсе. Скажем про аппаратные прерывания в том же DOS-е он, видимо, совсем позабыл... И наивно полагает что как команды написаны, так они и исполняются - последовательно, без остановок, не прерываемые ничем и никогда ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 22.12.17 20:12 |
Re: Добавление записи из grid в текстовое поле | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Не, я считаю его фанатом доса))
|
Re: Добавление записи из grid в текстовое поле | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Не самое страшное извращение в нашем неспокойном мире, надо признать... ------------------ WBR, Igor |
© 2000-2024 Fox Club  |