|
Забыл "фундамент", напомните, плиз :)
|
|||
---|---|---|---|
#18+
Вроде и стыдно спрашивать о таком пустяке, но - уж слишком давно не занимался программированием, позабывал даже многие азы :( В общем, вопрос: Код: plaintext 1. 2. 3.
Код: plaintext
Помню, где-то когда-то, вроде, читал, что умные компиляторы предварительно вычисляют такие пункты программы единственный раз, а затем просто используют в нужный момент эти предварительно вычисленные значения. Только не помню - о Фокспро ли там писалось, или о какой-то другой среде программирования... В общем - подскажите, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:47 |
|
Забыл "фундамент", напомните, плиз :)
|
|||
---|---|---|---|
#18+
neznajka, Добавьте внутрь цикла команду изменения длины вашей строки и объизучайтесь хоть до постижения. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:56 |
|
Забыл "фундамент", напомните, плиз :)
|
|||
---|---|---|---|
#18+
Вычислится один раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 10:25 |
|
Забыл "фундамент", напомните, плиз :)
|
|||
---|---|---|---|
#18+
правильный проходящий., Спасибо, до этого я и сам додумался было. Но - гложет червь сомнения :) - а вдруг для такого случая "умный" компилятор имеет отдельный сценарий "поведения"? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 10:25 |
|
Забыл "фундамент", напомните, плиз :)
|
|||
---|---|---|---|
#18+
Dima T, Спасибо! А есть где почитать об этом применительно к Фоксу? Подкиньте ссылочку, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 10:27 |
|
Забыл "фундамент", напомните, плиз :)
|
|||
---|---|---|---|
#18+
neznajkaDima T, Спасибо! А есть где почитать об этом применительно к Фоксу? Подкиньте ссылочку, пожалуйста. Не знаю где почитать. Как выше советовали - проверить элементарно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Компилятор фокса не сильно умный. Был бы умный, то при изменении строки пересчитал бы ее длину. Да и не компилятор он, а интерпретатор. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 10:50 |
|
Забыл "фундамент", напомните, плиз :)
|
|||
---|---|---|---|
#18+
Dima T, Спасибо, всё доступно и понятно. А я пробовал проверять немного по-другому: во 2-м варианте программы я в заголовок цикла ставил не напрямую выражение LEN(m.asd), а переменную m.vr=LEN(m.asd), вычисленную ДО цикла, и замерял время Seconds(ДО_Перед_циклом)-Seconds(ПОСЛЕ_Цикла) при обработке заведомо большого количества записей. Затем сравнивал это время с аналогичным временем 1-го варианта цикла (как в начале темы). Правда, замеченная мной разница оказалась не принципиальной, и может быть объяснена другими причинами. Ваш способ проверки - надёжней :) ------------- Только насчёт "компилятор-интерпретатор" - надо же! А я всегда полагал, что раз в Фоксовом прг-шнике НЕ выполняется СРАЗУ ЖЕ каждая нововведённая строка (как в ДОС-Бейсике), значит Фокс является компилятором (возможно, за исключением командного окна). Да и в ФоксХелпе везде пестрят термины "compiler", "compilling", и т.п. Ну да ладно, интерпретатор - так интерпретатор :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 14:13 |
|
Забыл "фундамент", напомните, плиз :)
|
|||
---|---|---|---|
#18+
Компиляция есть, но смысл ее в другом. PRG компилируется в FXP. Но FXP это не бинарный код для процессора, а байт-код для интерпретатора. Для строчного выполнения есть окно Command (Ctrl+F2) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 14:22 |
|
|
start [/forum/topic.php?fid=41&fpage=17&tid=1582058]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 387ms |
0 / 0 |