Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Есь строки "1,2,3,4" "A1,A2,4,...,DDDD.." Есть ли возможность их сразу в массив в COS. В бейсике сразу можно Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 11:38 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Гость68, Нельзя так на косе, цикл нужно писать Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 11:47 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Гость68, Можно использовать ф-ию $listfromstring, которая возвращает список. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 11:57 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 12:04 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. Дорого каждое мгновение, как Вы думаете COS будет быстрей чем Cache Basic? Судя по коду будет несколько раз работать ф-ия $P. Хотя с другой стороны Cache Basic конвертится в тот же COS В 5.0 не нашел $listfromstring ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 12:16 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Гость68Всем спасибо. Дорого каждое мгновение, как Вы думаете COS будет быстрей чем Cache Basic? Судя по коду будет несколько раз работать ф-ия $P. Хотя с другой стороны Cache Basic конвертится в тот же COS В 5.0 не нашел $listfromstringCOS, наверное, быстрее, а так -- $zhorolog и ^%MONLBL вам в помощь. $listfromstring в 5.1 появилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 12:28 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
По поводу производительности: $listnext (материал со Школы Инноваций InterSystems 2007 , слайд 32) GetNext для коллекций (материал с DevCon 2009 , стр. 16) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 13:07 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Так что? Быстрее будет работать через $LISTFROMSTRING() и $LISTNEXT() чем просто разбирать строку через $p()? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 13:15 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Однозначно быстрее, можно даже не мерить. Любая адекватная замена нескольких вызовов встроенных функций на один всегда дает выигрыш. Зато не будет работать в 5.0. Я когда-то, находясь на распутье между версиями, накропал пару макросов, которые в зависимости от версии Cache транслируются в $listfromstr или в цикл с $p(). Если кому интересно, могу выложить. Cache Basic, ИМХО, не должен проигрывать COS по скорости (если, конечно, удается использовать аналогичные языковые конструкции): транслируется-то они по любому в *.OBJ того же формата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 13:51 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
У меня быстрее в ~ 26 раз. Но нужно учитывать две вещи: 1) $lfs,$listnext отсутствуют в старых версиях Caché; 2) размер строки и размер той же строки в виде списка отличаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 13:52 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Благо у нас клиентура скоро вся перейдет на 2007.*... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 14:00 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
$listnext быстрее если писать с for Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 15:10 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Пример взял из документации. Спасибо за совет. Тогда скорость $listnext над $p возрастает с ~ 400 раз до ~ 500. Код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 17:26 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
servit, Точно!! Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 19:10 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Коллеги, а вы не забыли, что надо еще и массив заполнять? :) а операция это довольно-таки затратная... Вариант с $p() отбросим сразу как заведомо проигрышный. См: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. P.S. Тестировал на Intel P4, Cache for Windows (x86-32) 2008.2.1 (Build 902)) и на AMD64, Cache for UNIX (Red Hat Enterprise Linux for x86-64, 2008.2.1 (Build 902)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 11:52 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Конечно, наличие массива в цикле заметно увеличивает время выполнения. Отсюда и цифра 26 в моём посте выше. PS: нет предела совершенству. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 13:02 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Без массива получается t3/t1 ~ 1.5, что все равно неплохо по сравнению с $piece(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 13:44 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
непонятно что вас заставляет использовать $listnext Код: plaintext 1. 2. 3. 4. 5. 6. 7. автор Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 14:26 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 14:56 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Наверное имелось в виду Код: plaintext 1. 2. Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 15:09 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Даже Код: plaintext 1. 2. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 15:10 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Продолжая "common code": Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 15:19 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
servit Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 16:10 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
На самом деле такие отклонения, как t3 - t1, могут быть в пределах погрешности. Но на 500 прогонах у меня получился практически тот же результат: у t1 ($listnext) небольшой, но устойчивый выигрыш: порядка 1% в Windows/x32 и ~ 3% - в Linux/x64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 16:26 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вывод: нечего лопатой торт резать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2010, 02:45 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
все же зря вы не оформляете нормально сообщения теперь по существу первый тест, тормозит из-за использования FOR, не используйте его если вам нужна производительность, используйте while, это касается всех ваших тестов $piece тоже медленный, его использование также не рекомендуется в общем не совсем понятно что вы тестировали и опять же, не вижу того что это средние показатели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2010, 08:45 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Изменённый код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 1) почему [1] < [2] объяснялось выше; 2) [1.1] > [2.1], [3.1] < [5.1] - здравый смысл; 3) [3] > [5], так как в [5] область поиска с каждой итерацией сужается; 4) следует разделять функции для быстрого получения единичного элемента и для быстрого прохода по всем элементам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2010, 10:40 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
благодарю за ответ (1) согласен. следующий адресс даже не переводится. (2) здравый есть. но кто знает как на код взглянуть? (3) да (4) да, но это зависит от содержания даты. а как её знать до процесса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2010, 14:05 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
(1) попробую For <> While (2) кто рекомендует? где? (3) если строки не монолитны содержанием за чем всё читать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2010, 14:14 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Вариант с for у меня оказался чуть быстрее, чем с while , поэтому я привёл код с for . To CEH Попробуйте следующий пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2010, 14:56 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
CEHблагодарю за ответ (1) согласен. следующий адресс даже не переводится. (2) здравый есть. но кто знает как на код взглянуть? (3) да (4) да, но это зависит от содержания даты. а как её знать до процесса? CEH возможно Вам лучше писать Ваши сообщения на английском и ниже добавлять перевод на русский иначе не всегда понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 09:25 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за археологию, но как-то не удержался :) DAiMorтеперь по существу первый тест, тормозит из-за использования FOR, не используйте его если вам нужна производительность, используйте while, это касается всех ваших тестов Не нужно говорить глупости, FOR всегда будет быстрее WHILE, хотя бы потому, что WHILE конструируется на уровне p-кода. Внимательнее нужно быть. В среднем в 3-4 раза FOR будет быстрее, если речь об одной строке. Если речь об исполняемом блоке, то раза в 2. P.S. Все нестандартные "примочки" в COS, уровня WHILE, $CASE и т.д., конструируются. Я полагал, что это общеизвестно. Посему говорить об их "скорости" несерьезно. $CASE вообще раскладывается на парные $SELECTы, это нечто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 06:49 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Хм, ни за что бы не подумал Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 08:07 |
|
||
|
Из строки в массив(COS)
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Хм, ни за что бы не подумал Код: plaintext 1. 2. 3. 4. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 09:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=39&tid=1558008]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
84ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 405ms |

| 0 / 0 |
