![]() |
презентация об оптимизации кода
http://docs.google.com/present/view?...rvds_0hjb794hr
многое я знал. Некоторые вещи смущают. Например, где рассказывается про оптимизацию list.push(i); Простой эксперимент показал небольшую разницу, 1352 vs 1384. Правда на большом массиве. А, вот второй эксперимент на пачке небольших массивов показал другой результат 1267 vs 2610. Ну тоже, никак не "about 3 times faster". Странно так же, что длинное название переменной влияет на скорость, я думал, что компилятор их не сохраняет. По крайней мере после декомпиляции имена локальных переменных внутри функции не сохраняются. Про list[int(i)] - не совсем верно. Если i:int - то будет не прирост, а падение скорости. Вообще не понял про "Array splicing" - стр. 60. Что автор имел ввиду? list[i]=null ничего не стирает, length не изменяется. Про "Nulling vs deleting"(стр. 65), что-то тоже я сомневаюсь. После "dict[key]=null" - key остается, и по его адресу находится null, т.е. память не освобождается. Т.е. delete dict[key] и dict[key]=null немного разный смысл несет. И можно в памяти оставить туеву кучу null'ей. |
По поводу объявлений в одной строке вместо для каждого объявления - новая строка - вообще бред, это один и тот же код, абсолютно никакой разницы...
|
Цитата:
Цитата:
|
Полезная презентация.
А где бы полный текст доклада взять? |
Презентация о том, как не надо оформлять код.
|
Это зависит от того, чем ты занимаешься. Если ты программируешь веб-сайты или какие-то простые вещи, где тормоза флеша не важны, то это не нужно, конечно. А вот для программирования игр на флеше(или даже, о боже, трехмерной галереи) - очень важно.
Да и где читаемость кода ухудшается? Если я пишу list[list.length]=item; - это тяжелее читать, чем list.push? Да ни разу. a*=.5 хуже читается, чем a/=5? Смысл переменной selectedIcon теряется, если ее переименовать selIco? Везде нужно сохранять здравый смысл. А то, развелось тут товарищей, которые плодят лишние классы, просто для того, чтобы упростить читаемость кода и разнести его по разным файлам. |
соглашусь с iNils'ом. если это дейсвительно даёт прирост скорости, то этим должен заниматься компилятор, а не я.
|
Угум. А потом в таймзеро pathfinder секунды три ищет путь на моем eeePC.
|
Цитата:
Только что проверил. А про описание переменных в одну строчку... я даже хотел закрыть вкладку. |
Между list.push(item) и list[list.length] = item в производительности почти разницы нет.
Если брать list.push(item) и list[length] = item, где length — отдельный счетчик, то второй вариант в 2 разы быстрее (у меня в релиз плеере). |
| Часовой пояс GMT +4, время: 11:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.