![]() |
|
||||||||||
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну уж добить регулярку сами сможете, не?
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Зато короче :P
И врядли вы тут даже почувствуете медлительность, ну разве что когда мегабайты текста будете парсить. |
|
|||||
|
.
|
А чем особым они помогут? Я помню ассемблерные вставки для sinclair basic, здесь также? Неужели можно тупо на асме реализовать проблемные места? Что за диво эти алхимики/хаксы? Тогда нахрена вообще AS? Давайте писать на... чемм там быстрее и не так тармознутее?
Последний раз редактировалось dimarik; 10.03.2010 в 01:39. |
|
|||||
|
у стринга есть (если не путаю) slice или substr. Вот и выдирайте в цикле кусками по 80 симовлов и в другой target стринг копируйте.
как-то так |
|
|||||
|
Modus ponens
|
chabapok:
Могли бы и на первую страницу заглянуть ![]() dimarik: Ну так все от задачи зависит. Скажем, до Asm'a там далеко, но все-таки соптимизировать конкатенацию и вообще работу со строками (т.е. с массивами примитовов вообще) на уровне флешевого байткода еще как можно. Т.е. например то, как написал chabapok для больших объемов информации делать не стоит т.как это будет дублировать строки при каждой конкатенации (на фоне этого многократный вызов геттера length - мелочь). А вообще - можно конкретно под конкатенацию заточить функцию так чтобы, например третий сверху регист хранил ссылку на часть, которую нужно скопировать, четвертый - на уже скопированую, ворой и первый - на инкремент и значение которое нужно добавить к инкременту - описать такую структуру на AS никак не получится т.как нам обязательно нужна ссылка, чтобы ее в регистр положить, а используя такой метод у нас этой ссылки не будет. В HaXe похожую штуку осуществляет StringBuf. Ну а в AS по бедности можно использовать массив, или самому лист написать, по скорости разницы скорее всего не будет между листом и массивом, но оба выиграют у конкатенации, если складывать нужно много строк. EDIT: Но, опять же есть тривиальные решения, которые просто реализовать и они будут работать с вменяемой производительностью, и есть заведомо нехорошие. Ни один из предложеных выше вариантов не является заведомо плохим, поэтому как бы и спорить нет смысла. Но можно расшибится в лепешку и соптимизировать цикл с использованием небезопасных поинтеров, передачей значений "наугад" по адресу регистра или через джампы и т.п. Писать на AS стоит потому, что писать и дебажить байткод дико сложно, но за простоту мы платим производительностью, т.как написать идеальный компилятор не возможно ![]() Или то будет вот так: http://xkcd.com/371/
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 10.03.2010 в 05:05. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Мне кажется вы немного того, если для разбиения строки на одинаковые куски собрались использовать байткод и прочую алхимию. Это всего лишь подтверждение либо тому, что вам делать нехрен, либо тому, что AS3 тормоз. (Насчет последнего не очень уверен)
|
|
|||||
|
Modus ponens
|
Ну так я ж говорю, что от задачи зависит - если тебе нужно в AIR перелопатить несколько сот (тысячь) текстовых файлов - я думаю, ты тоже бы задумался, а стоит ли немного допилить родные API - там разница по времени может очень приличная получиться. Ну и сам понимаешь, что тормоз не AS3, а то, что из него компилируют
![]()
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:37. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|