Самое лобовое решение оказалось самым эффективным.



Posted by Борис, Киев. on October 01, 1999 at 05:10:50:

In Reply to: А я, что, ответил Вам совсем невпопад? posted by Аpкадий Водяник on September 30, 1999 at 19:13:49:

Самое лобовое решение оказалось самым эффективным.

Увы, ничего доделывать и переделывать и дополнять не надо.

Полными профилями нагружать не буду, только существенные фрагменты.

1. способ печати по 2 символа.
Вpеменной пpофиль фоpмы KP0-LAST

Количество выполнений: для фоpм не запоминается.
На это количество выполнений потpебовалось 38358 мс = 100%
Распpеделение вpемени по стpокам исходного текста в относительных %, и мс:

- Это
~ ~¦0355 :PECHAT
0.1% 53¦0356 L=[tr ([length A]+1)/2]
0.8% 298¦0357 for I7=0 to L-1
1.8% 685¦0358 B=[cp A,I7*2+1,2]
################## 89.7% 34416¦0359 ^B\>>file F0
0.9% 355¦0360 endfor
# 5.9% 2248¦0361 >>file F0
0.0% 13¦0362 return
~ ~¦0363 :KONEC
2. Просто для сравнения, т.к. результат не съедобен для дальнейшей работы
так как печатаются завершающие пробелы.

Вpеменной пpофиль фоpмы KP0-LAST

Количество выполнений: для фоpм не запоминается.
На это количество выполнений потpебовалось 12424 мс = 100%
Распpеделение вpемени по стpокам исходного текста в относительных %, и мс:


~ ~¦0356 :PECHAT
################### 95.5% 11866¦0357
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^A
~ ~¦0358 *L=[tr ([length A]+1)/2]
~ ~¦0359 *for I7=0 to L-1
~ ~¦0360 *B=[cp A,I7*2+1,2]
~ ~¦0361 *^B\>>file F0
~ ~¦0362 *endfor
~ ~¦0363 *>>file F0


И наконец третий самый "лобовой", но как оказалось супер эффективный,
конечно на фоне первых двух.

Вpеменной пpофиль фоpмы KP0-LAST

Количество выполнений: для фоpм не запоминается.
На это количество выполнений потpебовалось 4485 мс = 100%
Распpеделение вpемени по стpокам исходного текста в относительных %, и мс:

~ ~¦0351 :PECHAT
0.3% 22¦0352 T9=[length A]
0.4% 25¦0353 if T9<=2
1.1% 69¦0354 ^A\>>file F0
~ 1¦0355 return
~ 8¦0356 elseif T9=3
~ 3¦0357 ^^A>>file F0
~ ~¦0358 return
~ 7¦0359 elseif T9=4
2.2% 140¦0360 ^^^A>>file F0
~ 1¦0361 return
~ 7¦0362 elseif T9=5
2.5% 160¦0363 ^^^^A>>file F0
~ 3¦0364 return
~ 8¦0365 elseif T9=6
## 13.1% 834¦0366 ^^^^^A>>file F0
~ 8¦0367 return
~ 5¦0368 elseif T9=7
~ 8¦0369 ^^^^^^A>>file F0
~ ~¦0370 return
и так далее, странно, но факт, куча дорогих if , но в результате всего
навсего 4.5 секунд.

Файл F0 объемом 78Кb содержал 2558 строк.

Итак 5 сек. и форма готова к выводу в Word-97, еще секунда и готов файл для
Word-97.
Сам не знаю почему, но такой монстровый алгоритм отбросил сразу. Но Ваш
взгляд заставил перебрать все альпийские решения и вот результат, который
устраивает меня сегодня. Спасибо за беседу.

С ув. Борис.

P.S.
думаю, что вычисляемый if мог бы поднять планочку еще.




Пpишедшие ответы: