Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.07.2009, 21:17
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 1  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
По умолчанию презентация об оптимизации кода

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'ей.

Старый 19.07.2009, 19:56
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По поводу объявлений в одной строке вместо для каждого объявления - новая строка - вообще бред, это один и тот же код, абсолютно никакой разницы...
__________________
Hell is the possibility of sanity

Старый 19.07.2009, 20:04
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 3  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Вообще не понял про "Array splicing" - стр. 60. Что автор имел ввиду? list[i]=null ничего не стирает, length не изменяется.
Сначала занулить, потом сделать slice. Странно, что работает быстрее, кстати.
Цитата:
И можно в памяти оставить туеву кучу null'ей.
Нет. delete тоже зануливает его и прячет от тебя - его потом съест GC.

Старый 20.07.2009, 14:38
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 4  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Полезная презентация.
А где бы полный текст доклада взять?

Старый 20.07.2009, 15:31
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Презентация о том, как не надо оформлять код.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.07.2009, 15:45
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 6  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Это зависит от того, чем ты занимаешься. Если ты программируешь веб-сайты или какие-то простые вещи, где тормоза флеша не важны, то это не нужно, конечно. А вот для программирования игр на флеше(или даже, о боже, трехмерной галереи) - очень важно.

Да и где читаемость кода ухудшается? Если я пишу list[list.length]=item; - это тяжелее читать, чем list.push? Да ни разу. a*=.5 хуже читается, чем a/=5? Смысл переменной selectedIcon теряется, если ее переименовать selIco?
Везде нужно сохранять здравый смысл. А то, развелось тут товарищей, которые плодят лишние классы, просто для того, чтобы упростить читаемость кода и разнести его по разным файлам.

Старый 20.07.2009, 16:15
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 7  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
соглашусь с iNils'ом. если это дейсвительно даёт прирост скорости, то этим должен заниматься компилятор, а не я.

Старый 20.07.2009, 16:22
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 8  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Угум. А потом в таймзеро pathfinder секунды три ищет путь на моем eeePC.

Старый 20.07.2009, 16:37
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
list[list.length]=item; - это тяжелее читать, чем list.push?
Тяжелее. Более того, никакого прироста это не дает. Как и * vs. /
Только что проверил.
А про описание переменных в одну строчку... я даже хотел закрыть вкладку.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 20.07.2009 в 16:40.
Старый 20.07.2009, 16:40
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 10  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
Между list.push(item) и list[list.length] = item в производительности почти разницы нет.

Если брать list.push(item) и list[length] = item, где length — отдельный счетчик, то второй вариант в 2 разы быстрее (у меня в релиз плеере).
__________________
Лучше быть умным и иногда делать глупости, чем глупым и постоянно умничать!

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.