|
|
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
Добрый день. нужно уточнить один вопрос. есть код цикла : Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. где для обработки данных используется дополнительная переменна TrashStr Вопрос : в случае если значение HtmlTrash[J] используется в цикле более одного раза как правильно с точки зрения потребления ресурсов памяти и быстродействия : - использовать дополнительную переменную TrashStr - везде где надо использовать HtmlTrash[J] вместо TrashStr а то уже такие обработки идут что i7(8 ядер) начинает тормозить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2018, 21:29 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
если вопрос в быстродействии, то я бы вообще отказался бы от операций со строками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2018, 21:39 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
Pcrepair, Use regexpr, Luke! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2018, 21:53 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
Pcrepairкак правильно с точки зрения потребления ресурсов памяти и быстродействия : - использовать дополнительную переменную TrashStr - везде где надо использовать HtmlTrash[J] вместо TrashStr Правильнее будет выкинуть этот бесконечный цикл и сделать однопроходный парсер. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2018, 22:20 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
это просто пример цикла вопрос в другом, если кто не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2018, 22:30 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
PcrepairВопрос : в случае если значение HtmlTrash[J] используется в цикле более одного раза как правильно с точки зрения потребления ресурсов памяти и быстродействия : - использовать дополнительную переменную TrashStr - везде где надо использовать HtmlTrash[J] вместо TrashStr это копейки, не там ищешь. а то уже такие обработки идут что i7(8 ядер) начинает тормозитьне вижу кода, который бы загрузил боле одного ядра Задача-подсказка: найти позиции слов-констант во входной строке - результат сохранить в массив (функции работы со строками не использовать!). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2018, 22:52 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
Pcrepair, Все всё поняли. Просто ты не понимаешь, что для "потребления ресурсов памяти и быстродействия" важно совсем не то, чем ты интересуешься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2018, 22:53 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
kep-koэто копейки, не там ищешь. не вижу кода, который бы загрузил боле одного ядра копейка к копейке и вот уже мульон, так что правильный ответ по прежнему отсутсвует. что весь код показать? там гдето 50 тыс строк тут вопрос по основам на примере цикла и ничего более ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2018, 07:20 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
Pcrepairkep-koэто копейки, не там ищешь. не вижу кода, который бы загрузил боле одного ядра копейка к копейке и вот уже мульон, так что правильный ответ по прежнему отсутсвует. что весь код показать? там гдето 50 тыс строк тут вопрос по основам на примере цикла и ничего более Вот это: Код: pascal 1. 2. при каждом проходе будет вызывать копирование памяти туда-сюда. Это гораздо медленнее, чем простое присваивание ссылки на строку в Код: pascal 1. Так что, как уже сказали, не там вы узкое место ищите. Но да, если к этой строке потом будет много обращений, то имеет смысл кэшировать ссылку на неё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2018, 10:44 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
Pcrepairкопейка к копейке и вот уже мульон, так что правильный ответ по прежнему отсутсвует. что весь код показать? там гдето 50 тыс строк тут вопрос по основам на примере цикла и ничего более Так на примере цикла и ответили. Т.к. для такого класса задач цикл вообще не нужен. Один проход обычным парсером. Если 100500 раз по строке циклом проходить, то тогда, конечно, копейки нужно экономить. Но если сделать нормальный парсер, то на копейки будет пофиг. Тут и на водку рекой и на цыган с музыкой хватит ))) IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2018, 11:26 |
|
||
|
Использование строковой переменной в цикле
|
|||
|---|---|---|---|
|
#18+
Кешировать и так константную строку смысла нет. Да даже и если не константную. Разницы там от силы на одну инструкцию. А вот Delete в цикле это и есть самый большой пожиратель. Как только заменишь эту жуть на однократный проход по строке, сразу увидишь разницу. Принцип простой - найти "&", проверить следующие за ним символы на соответствие трэш-строкам, если совпадает - скопировать в результат всё от предыдущей засечки до текущей позиции и пропустить код символа, если не совпадает - искать "&" дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2018, 14:55 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39607035&tid=2041197]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
222ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 292ms |
| total: | 620ms |

| 0 / 0 |
