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

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

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По умолчанию Сравнение скорости разных языков

Пожалуйста, можете подтвердить результат? А то меня числа как-то засмущали... вот тест на других языках: http://blog.dhananjaynene.com/2008/0...-jruby-groovy/
И вот мой код на AS3, который его вобщем-то один в один повторяет, безо всяких попыток что-то оптимизировать. Результат получается совсем даже не плохой (у меня в релиз плеере 64 бит Убунту около 9.6 микросекунд). Но что-то мне не верится, что все так хорошо... может я что-то пропустил?
Код AS3:
package org.wvxvw.josef
{
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.utils.getTimer;
 
	public class JosefTester extends Sprite
	{
		private var _field:TextField = new TextField();
 
		public function JosefTester()
		{
			super();
			super.addChild(this._field);
			test(this._field);
		}
 
		private static function test(field:TextField):void
		{
			var count:int = 100000;
			var time:int = getTimer();
			var chain:Chain;
 
			for (var i:int; i < count; i++)
			{
				chain = new Chain(40);
				chain.kill(3);
			}
			field.text = "Time per iteration: " + (getTimer() - time) * 1000 / count + " microseconds";
		}
	}
}
Код AS3:
package org.wvxvw.josef
{
	public class Chain
	{
		public function get first():Person { return this._first; }
 
		private var _first:Person;
 
		public function Chain(size:int)
		{
			super();
			var last:Person;
			var current:Person;
			for (var i:int; i < size; i++)
			{
				current = new Person(i);
				if (!this._first) this._first = current;
				if (last)
				{
					last.next = current;
					current.prev = last;
				}
				last = current;
			}
			this._first.prev = last;
			last.next = this._first;
		}
 
		public function kill(nth:int):Person
		{
			var current:Person = this._first;
			var shout:int = 1;
			while (current.next != current)
			{
				shout = current.shout(shout, nth);
				current = current.next;
			}
			this._first = current;
			return current;
		}
	}
}
Код AS3:
package org.wvxvw.josef
{
	public class Person
	{
		public function get count():int { return this._count; }
 
		public function get prev():Person { return this._prev; }
 
		public function set prev(value:Person):void
		{
			this._prev = value;
		}
 
		public function get next():Person { return this._next; }
 
		public function set next(value:Person):void
		{
			this._next = value;
		}
 
		private var _count:int;
 
		private var _prev:Person;
 
		private var _next:Person;
 
		public function Person(count:int)
		{
			super();
			this._count = count;
		}
 
		public function shout(theShout:int, deadIf:int):int
		{
			if (theShout < deadIf) return theShout + 1;
			this.prev.next = this.next;
			this.next.prev = this.prev;
			return 1;
		}
	}
}
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 04.06.2011 в 02:14.
Старый 04.06.2011, 05:07
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 2  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Ты не указал конфигурацию машины. на тестах была
CPU : Intel(R) Core(TM) Duo CPU T2600 @ 2.16GHz
RAM : 2GB
А у тебя?
__________________
Отряд Котовскага

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

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
12 микросекунд
isDebugger false
WIN 10,1,52,14
os win7
так что 9 микросекунд. более чем правдоподобно?


Последний раз редактировалось nuToH; 04.06.2011 в 15:31.
Старый 04.06.2011, 13:10
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
CPU: Interl(R) Core(TM) i7 930 @ 2.80GHz
RAM: 5.8 GiB

Но я даже не представлял, что разница с тем же PHP или Python будет во столько раз в пользу Flash... В смысле, конечно, там где другие языки будут использовать библиотечный код, который скорее всего сильно оптимизирован, и написан на Си, ситуация сильно изменится. Но то, что родной код такой медленный в сравнении... что-то меня это все равно до сих пор смущает.

nuToH: не-не-не, фишка в том, что это микросекунды а не миллисекунды.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 04.06.2011 в 13:16.
Старый 04.06.2011, 14:17
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 5  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Java несомненно радует, жаль там c# нет.

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

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
Цитата:
Сообщение от wvxvw Посмотреть сообщение
nuToH: не-не-не, фишка в том, что это микросекунды а не миллисекунды.
исправился. спасиб., а в 10.3 плеере на 15% шустрее вышло... интересно.

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

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

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


 


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


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