Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Первый случай лучше тем, что в самом начале цикла сразу видно, куда и как идем: авторs uz=$o(^tmp("")) А во втором нужно искать ниже, что затрудняет прочтение. Однако в плане проверки условий выхода/пропуска узлов второй вараинт однозначно лучше (Это то, что говорил logist) Поэтому первый способ применяю в простых циклах, а второй в сложных. Лично мне безаргументный for не нравится (просто не нравится), поэтому вместо могу написать авторwhile 1 Да, и еще опять же лично меня коробят скобки, которые начинаются и заканчиваются неизветно где, поэтому я пишу скобки с обступам по 4 пробела. Намного более читабельной становится программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 06:01 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Привет. > поэтому я пишу скобки с обступам по 4 > пробела. Намного более читабельной становится программа. Это как? =Сергей Шутов (logist) ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 06:37 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
я пишу так (в случае первого варианта) Код: plaintext 1. 2. 3. 4. 5. А если скобка начинается в середите строки, то в этой же строке она и должна закрыться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 07:05 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Особых преимуществ не вижу, а вот Tab и Shift-tab на выделении работать не будут... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 08:25 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
В некоторых случаях отступ ломается, например при экспорте-импорте в каше 4, или разных настройках редактора (разные размеры таба) В при моем способе написани код остается читаемым в любом случае. + вопрос привычки, мне скобки воспринимать в середине строки тяжело, но я встречал людей, которым не нравится мой способ написания кода (хотя так и непонятно, почему). сравните Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. Еще видел код типа, если ломается форматировние, уровнь скобок >2 и объем кода >1 страницы - вообще атас. Код: plaintext 1. 2. 3. А почему не будет работать tab, shift-tab? И чем все-таки мой способ хуже вашего? Я свое объяснение предпочтений привел ;-) Кстати, так я форматировать код стал задолго до знакомства каше и пока не вижу аргументов переучиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 08:50 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Кстати, признаю код типа этого Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 08:57 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
омский мампсеринтересно.. какая альтернатива ? Использование процедур ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 11:23 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
logist //Тут чегото накодили if condition continue // Тут часть узлов отсеяли Такие конструкции у нас не применимы. Для этого есть процедура PROC - в ней все и делайте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 11:26 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Искусственное и надуманное раздергивание на процедуры иногда бывает хуже сложного текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 11:36 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Sergei Obrastsov Ymka2007скобки обрабатываются быстрее чем точки прошлогодняя школа Чушь. Быстрее точек обрабатывается только цикл в одну строчку Профильнул такой код: фома TestSpd d block d parentheses d while d line q parentheses n tn,count s tn="",count=0 f { s tn=$o(^|"KDRKDR"|ZSTV1(tn)) q:tn="" s:$d(^|"KDRKDR"|ZSTV1(tn,"U")) count=count+1 } q block n tn,count s tn="",count=0 f s tn=$o(^|"KDRKDR"|ZSTV1(tn)) q:tn="" d .s:$d(^|"KDRKDR"|ZSTV1(tn,"U")) count=count+1 q while n tn,count s tn=$o(^|"KDRKDR"|ZSTV1("")),count=0 while tn'="" { s:$d(^|"KDRKDR"|ZSTV1(tn,"U")) count=count+1 s tn=$o(^|"KDRKDR"|ZSTV1(tn)) } q line n tn,count s tn="",count=0 f s tn=$o(^|"KDRKDR"|ZSTV1(tn)) q:tn="" s:$d(^|"KDRKDR"|ZSTV1(tn,"U")) count=count+1 q Перед профилированием несколько раз запустил. Результат: фома Routine Line RtnLine Time TotalTime Code TestSpd 1 2 0.000009 0.000009 TestSpd ; Compiled April 3, 2008 11:25:34 2 2 0.00001 0.348848 d block 3 2 0.000011 0.349198 d parentheses 4 2 0.00001 0.345024 d while 5 2 0.000009 0.179140 d line 6 2 0.000016 0.000016 q 7 2 0.000003 0.000003 parentheses 8 2 0.000008 0.000008 n tn,count s tn="",count=0 9 2 0.000004 0.000004 f 10 0 0 0.000000 { 11 33032 0.106221 0.106221 " s tn=$o(^|""KDRKDR""|ZSTV1(tn))" 12 33032 0.052522 0.052522 " q:tn=""""" 13 33030 0.187058 0.187058 " s:$d(^|""KDRKDR""|ZSTV1(tn,""U"")) count=count+1" 14 33030 0.053743 0.053743 } 15 2 0.000012 0.000012 q 16 2 0.000004 0.000004 block 17 2 0.000008 0.000008 n tn,count s tn="",count=0 18 2 0.11131 0.111310 f s tn=$o(^|"KDRKDR"|ZSTV1(tn)) q:tn="" d 19 33030 0.187116 0.187116 .s:$d(^|"KDRKDR"|ZSTV1(tn,"U")) count=count+1 20 2 0.000011 0.000011 q 21 2 0.000004 0.000004 while 22 2 0.000027 0.000027 n tn,count s tn=$o(^|"KDRKDR"|ZSTV1("")),count=0 23 2 0.000006 0.000006 while tn'="" 24 0 0 0.000000 { 25 33030 0.184975 0.184975 " s:$d(^|""KDRKDR""|ZSTV1(tn,""U"")) count=count+1" 26 33030 0.104489 0.104489 " s tn=$o(^|""KDRKDR""|ZSTV1(tn))" 27 33030 0.055496 0.055496 } 28 2 0.000014 0.000014 q 29 2 0.000004 0.000004 line 30 2 0.000008 0.000008 n tn,count s tn="",count=0 31 2 0.179096 0.179096 f s tn=$o(^|"KDRKDR"|ZSTV1(tn)) q:tn="" s:$d(^|"KDRKDR"|ZSTV1(tn,"U")) count=count+1 32 2 0.000021 0.000021 q Totals for TestSpd 264288 1.222225 NA Итого: (если сложить время выполнения строк, входящих в цикл) block 0.298426 parentheses 0.399548 while 0.344993 line 0.179096 Результат удивил: до теста был уверен, что структура со скобками должна работать быстрее (т.к. не используется команда do), а на деле... 2 Sergei Obrastsov: а есть объяснение почему так? (кроме количества строк в теле цикла) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 11:45 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Блок А.Н. , тут уже каждый решает сам. Если ты заметил мы и скобки стобой используем по-разному... ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 11:46 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Насчет профилировки: 1.Начало строки - это оператор в байт коде М, так что он на самом деле вносит задержки (правда ты что-то слишком много) 2.Очень большие задержки вносит профилировщик 3. Все это ерунда, потому что все равно узким местом каше-систем будет дисковая подсистема. автортут уже каждый решает сам. Несомненно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:05 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
фомаРезультат удивил: до теста был уверен, что структура со скобками должна работать быстрее (т.к. не используется команда do), а на деле... 2 Sergei Obrastsov: а есть объяснение почему так? (кроме количества строк в теле цикла) Я же написал уже - что while , что скобки - структуры "липовые", надстройки сверху. Попытайтесь себе представить как бы вы это реализовали стандартными командами M и будьте уверены, что так оно и сделано. Ну, почти так, за редким исключением. А do , кстати срабатывает быстро, гораздо быстрее скобок. Что же касается блока, то тут все просто, exec сразу начинает работать со следующей строкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:07 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Про быстродействие скажу так... Меня больше волнует "быстродействие" программера как разработчика ПО. А особено при модернизации оного ПО... Т.к. если текст программ будет "не читабелен" - на его разбор и модернизацию уйдет много времени. Вот вам антипример кода Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:13 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Насчет профилировки: 1.Начало строки - это оператор в байт коде М, так что он на самом деле вносит задержки (правда ты что-то слишком много) 1. Меньше строк - быстрее цикл, а читабельность кода хуже, как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:21 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Фома , как было уже замечено ранее, все будет тормозить HDD. Т.ч. я за читабельность текстов программ. ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:29 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Я думаю, стоит оптимизировать логику программы, особенно обращения к базе данных. Спихивание кода в одну строку - очень плохой способ ускорения программы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:34 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
krvsa Фома , как было уже замечено ранее, все будет тормозить HDD. Т.ч. я за читабельность текстов программ. Прошлый раз смолчал, сейчас не буду уже. Откуда такие мыслишки, если не секрет? Есть какие-то конкретные выкладки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:58 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Sergei ObrastsovОткуда такие мыслишки, если не секрет? Так личные соображения... Sergei ObrastsovЕсть какие-то конкретные выкладки? Нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:02 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
krvsa Sergei ObrastsovОткуда такие мыслишки, если не секрет? Так личные соображения... Sergei ObrastsovЕсть какие-то конкретные выкладки? Нет... Жаль. Тогда все это голословно. Я еще пойму, если будут претензии к чтению из файла, тут Cache явно не на высоте. А остальное меня устраивает пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:18 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Sergei ObrastsovТогда все это голословно. Тесты показывают следующий рейтинг 1. В одну строчку 2. Точки 3. Процедурный подход Но если начать читать даные из БД и в нее же писать (а мы только этим и занимаемся). Скорость обработки упадет у всех вариантов. И это мизерная разница между 3-мя вариантами будет уже не так важна как некие способы ускорения чтения даных и их запись. Вот я о чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:39 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
krvsa Sergei ObrastsovТогда все это голословно. Тесты показывают следующий рейтинг 1. В одну строчку 2. Точки 3. Процедурный подход Но если начать читать даные из БД и в нее же писать (а мы только этим и занимаемся). Скорость обработки упадет у всех вариантов. И это мизерная разница между 3-мя вариантами будет уже не так важна как некие способы ускорения чтения даных и их запись. Вот я о чем. Насколько я понял, с БД вы работаете "классовыми" методами, так что скорость вы теряете именно на них, сами программы здесь особо не причем. Речь шла, естественно, об идеальном варианте работы программы, которая не заморачивается на внешние устройства. А если цеплять сверху все то, что нынче так модно, то можно конечно и не страдать по поводу "while", разницы не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:43 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Классовое хранение используем только в новых задачах. Основной движок использует свое хранение. А про идеал я никогда и не спорил... Все давно протестили еще на MSM. ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:50 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
krvsaКлассовое хранение используем только в новых задачах. Основной движок использует свое хранение. А про идеал я никогда и не спорил... Все давно протестили еще на MSM. MSM - плохой критерий, не стоит его упоминать. Это Cache 1.0 делали из него. Пока не купили DataTree. Так вот, на MSM все несколько по-другому считалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:53 |
|
||
|
Интересно ваше мнение...
|
|||
|---|---|---|---|
|
#18+
Просто у меня мнение поподходу программирования сложились. Да и временем они хорошо проверены... ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35231535&tid=1558930]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 336ms |

| 0 / 0 |
