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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.06.2014, 12:33
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 11  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Ваша проверка делает абсолютно то же самое.
Только утверждение там обратное. "Если такого свойства нет".
И скорость гораааздо больше, чем вы пишете.
И нет. Там не перебор.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

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

Регистрация: Dec 2009
Сообщений: 125
Записей в блоге: 1
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
Или использовать обычный массив со строками-ключами, тут почитать можно.
Почитал. Там были объекты, о которых я и сам спрашиваю, словари, как расширение объектов, а про массивы там написано

Код AS3:
Использование конструктора Array для создания ассоциативного массива не дает никаких особых преимуществ.
Задаюсь вопросом, зачем вы это советуете

Старый 03.06.2014, 12:46
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 13  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
На знаю как далеко зашли в оптимизации сортировки массивов, но те методы, которые я учил на уроках информатики в школьные годы не назовешь очень быстрыми... Короче, трудовой мозоль на пятой точке подсказывает мне, что плеер быстрее найдет свойство обьекта своими методами, чем вы будете его из-под палки заставлять сортировать ничем ему не интересный массив. Да и поиск свойства осуществляется максимум полным пребором все имеющихся свойств, а сортировку массива за один проход не сделаешь . Плюс поиск предполагает только операцию сравнения, а сортировка - кроме сравнения еще и присваивание значения.

Старый 03.06.2014, 12:48
SvetozarPNZ вне форума Посмотреть профиль Отправить личное сообщение для SvetozarPNZ Найти все сообщения от SvetozarPNZ
  № 14  
Ответить с цитированием
SvetozarPNZ
 
Аватар для SvetozarPNZ

Регистрация: Dec 2009
Сообщений: 125
Записей в блоге: 1
Цитата:
Сообщение от ChuwY Посмотреть сообщение
И нет. Там не перебор.
Блин, точно не перебор. А так долго выполняет... Значит, как бы я не исхищрялся, все равно быстрее, чем мгновенный доступ к свойству я не придумаю... Эх!

Старый 03.06.2014, 12:55
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 15  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Совсем не долго выполняет.
Видимо, ошибка где-то еще.
Покажите ваш код.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

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

Регистрация: Dec 2009
Сообщений: 125
Записей в блоге: 1
Цитата:
Сообщение от elder_Nosferatu Посмотреть сообщение
На знаю как далеко зашли в оптимизации сортировки массивов, но те методы, которые я учил на уроках информатики в школьные годы не назовешь очень быстрыми... Короче, трудовой мозоль на пятой точке подсказывает мне, что плеер быстрее найдет свойство обьекта своими методами, чем вы будете его из-под палки заставлять сортировать ничем ему не интересный массив. Да и поиск свойства осуществляется максимум полным пребором все имеющихся свойств, а сортировку массива за один проход не сделаешь . Плюс поиск предполагает только операцию сравнения, а сортировка - кроме сравнения еще и присваивание значения.
На хабре пописывают про методики, обгоняющие стандартные методы ActionScript.
Говоря о сортировки я не имел в виду стандартных методов. У меня немножко другой подход со схожими алгоритмами.
В программе появилась ссылка, ее нужно по алфавиту вставить в массив (не сортировать весь массив! он уже сортируется в процессе сбора ссылок). Чтобы найти место для ссылки в сортированном индексном массиве из 1 млрд элементов достаточно 40 итераций. Или, как я выше выяснил, всего 1 проверку в ассоциативном массиве.

Чтобы собрать 1 млрд ссылок, нужно проводить проверки 115 суток...

Добавлено через 1 минуту
Цитата:
Сообщение от ChuwY Посмотреть сообщение
Совсем не долго выполняет.
Видимо, ошибка где-то еще.
Покажите ваш код.
Код AS3:
package 
{
 
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
 
	public class Main extends MovieClip
	{
 
		var startBut;
		var links;
		var massiv;
		var massLink = [];
		var obj:Object = new Object();
		var e;
 
		public function Main()
		{
			startBut = getChildByName('start');
			startBut.addEventListener(MouseEvent.CLICK, writeMassiv);
 
			links = getChildByName('links1');
			massiv = getChildByName('massiv1');
		}
		public function writeMassiv(e)
		{
 
			while (links.text)
			{
				var currentLink:String = links.text.substring(0,links.text.indexOf('\r'));
				links.text = links.text.substr(links.text.indexOf('\r') + 1);
				massiv.text +=  currentLink + '\r';
				if (!obj[currentLink]) obj[currentLink] = true
				else (trace(currentLink, '- такая ссылка есть');
			}
			if (! links.text)
			{
				trace('ссылок нет');
			}
 
		}
	}
}

Старый 03.06.2014, 13:13
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 17  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Я уверен, что перебираются все свойства при запросе какого-то одного
Так попробуйте. Вообще-то эту схему используют, как кеш/хеш довольно часто. На 3000 свойств у меня моментально обращение проходит. Без всяких сортировок.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 03.06.2014, 13:23
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 18  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Ну вы же понимаете, наверное, что в приведенном вами коде indexOf и substring кушают раз в 100 больше времени, чем поиск свойства?
А с учетом количества их вызовов...
Вот вам другой простенький тест.
(хотя тут генерация ключа более-менее жручая)

Код AS3:
package
{
	import flash.display.Sprite;
 
	public class test2 extends Sprite
	{
		private static const NUM_KEYS:int = 150000;
 
		private var _hash:Object = {};
		public function test2()
		{
			fill();
 
			check();			
		}
 
		private function check():void
		{
			for(var i : int = 0; i < NUM_KEYS; i++) {
				var key:String = generateKey();
 
				if(key in _hash) {
					trace("bingo! " + key + " exist");
				}
			}
		}
 
		private function fill():void
		{
			for(var i : int = 0; i < NUM_KEYS; i++) {
				var key:String = generateKey();
 
				_hash[key] = true;
			}
		}
 
		private function generateKey():String
		{
			var key:String = "";
 
			for(var i : int = 0; i < 3; i++) {
				key += int(Math.random() * 100);
			}
 
			return key;
		}
	}
}
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 03.06.2014, 13:48
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 19  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
SvetozarPNZ, запомните:
Цитата:
Вызов функции всегда дороже операторов.

Старый 03.06.2014, 14:07
SvetozarPNZ вне форума Посмотреть профиль Отправить личное сообщение для SvetozarPNZ Найти все сообщения от SvetozarPNZ
  № 20  
Ответить с цитированием
SvetozarPNZ
 
Аватар для SvetozarPNZ

Регистрация: Dec 2009
Сообщений: 125
Записей в блоге: 1
Понятно. Запомнил. Мне все равно нужно какие-то времязатратные действия производить. Буду смотреть, оптимизировать остальное.

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

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

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


 


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


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