Linux.org.ru
Новости - Галерея - Форум - Трекер - Wiki - Поиск
[#]  

Groovy++ догоняет Java по скорости

Осенью открылся проект по разработке статического компилятора с Groovy, называемый Groovy 1.8 или Groovy++ code.google.com/p/groovypptest/

Тесты, проведенные Nick Wiedenbrueck, показывают что производительность получаемого Groovy++ байткода лишь незначительно (в ~1,5раза) уступает байткоду, получаемому javac

>>> Подробности.

Метки: groovy, java, jvm, scala, программирование

Karapuz *** (07.02.2010 23:52:24)
Проверено: anonymous_incognito (07.02.2010 23:56:48)

[#]  
tia (фотография)

1,5 раза? Незначительно?

tia * (07.02.2010 23:53:39)
[#] Ответ на: комментарий от tia 07.02.2010 23:53:39  
Novell-ch (фотография)

ну так java же обгоняет asm

Novell-ch * (07.02.2010 23:59:21)
[#] Ответ на: комментарий от Novell-ch 07.02.2010 23:59:21  
real_kas (фотография)

ну так java же обгоняет asm

наверное асм обгоняет жабу, а не наоборот

real_kas (08.02.2010 0:11:01)
[#]  
Steplton (фотография)

В полтора раза тормознее тормозной жабы? ТАНУНАФИГ!

Steplton * (08.02.2010 0:11:27)
[#] Ответ на: комментарий от tia 07.02.2010 23:53:39  

> 1,5 раза? Незначительно?

Для динамического языка это действительно очень небольшое отставание. Если это действительно так, Groovy теперь должен сильно обгонять по производительности Python и Ruby.

Fice * (08.02.2010 0:12:26)
[#]  

Я думал тормознее явы ничего нет

anonymous (08.02.2010 0:13:30)
[#] Ответ на: комментарий от anonymous 08.02.2010 0:13:30  
BaBL (фотография)

эм... по ссылке есть результаты теста, там груви++ В 42!!! раза медленнее... откуда 1.5?

BaBL * (08.02.2010 0:22:51)
[#] Ответ на: комментарий от BaBL 08.02.2010 0:22:51  

Это первый тест. Там есть followup

Karapuz *** (08.02.2010 0:23:58)
[#] Ответ на: комментарий от anonymous 08.02.2010 0:13:30  

Как же нет. Писон тормознее явы

Karapuz *** (08.02.2010 0:24:40)
[#]  
vertexua (фотография)

АААА!!! Я ждал этой новости каждый день!

Раньше только необычайная тормознутось останавливала от использования. Но теперь ее нет.

Те кто читал о этом языке и смотрел примеры с кодом поняли, что следует ждать нескольких больших "языко-капецов" ))) Учитывая что Groovy не надо учить. Java код почти всегда - правильный Groovy. Пишешь на Java в файлах *.groovy, учишь Groovy, по мере роста знаний вставляешь синтаксические вкусности.

vertexua (08.02.2010 0:28:13)
[#] Ответ на: комментарий от anonymous 08.02.2010 0:13:30  

Ну как же, SBCL Lisp тормознее джавы.

e3d08dff (08.02.2010 0:28:21)
[#] Ответ на: комментарий от Karapuz 08.02.2010 0:24:40  
vertexua (фотография)

И еще почти все остальное тормознее кроме C, C++, hand-tuned assembly, Objective-C, Fortran.

vertexua (08.02.2010 0:33:02)
[#] Ответ на: комментарий от vertexua 08.02.2010 0:28:13  

> Раньше только необычайная тормознутось останавливала от использования.

И зависимость от пухленькой платформы.

naryl ** (08.02.2010 0:33:14)
[#] Ответ на: комментарий от Fice 08.02.2010 0:12:26  

> Для динамического языка это действительно очень небольшое отставание.

Ты по ссылке сходи - где ты там динамическую типизацию видишь?

tailgunner **** (08.02.2010 0:35:09)
[#] Ответ на: комментарий от naryl 08.02.2010 0:33:14  
vertexua (фотография)

От мощнейшей платформы. Это ни за что не останавливало

vertexua (08.02.2010 0:35:56)
[#] Ответ на: комментарий от tailgunner 08.02.2010 0:35:09  

"mySong = new Song(length:90, name:"Burning Down the House") 
myBook = new Book(name:"One Duck Stuck", author:"Phyllis Root") 
 
doSomething(mySong) //prints Burning Down the House 
doSomething(myBook) //prints One Duck Stuck 
 
anotherSomething = doSomething 
 
anotherSomething(myBook) //prints One Duck Stuck 

http://www.ibm.com/developerworks/java/library/j-alj08034.html

e3d08dff (08.02.2010 0:43:12)
[#] Ответ на: комментарий от e3d08dff 08.02.2010 0:43:12  
vertexua (фотография)

Дело в том, что при динамической типизации производительность не может быть очень высокой. Это Groovy.

Статья о Groovy++, что есть статический Groovy, тоесть вышеназваный без использования динамической типизации

vertexua (08.02.2010 0:48:13)
[#] Ответ на: комментарий от vertexua 08.02.2010 0:48:13  

>без использования динамической типизации

Не нужен.

anonymous (08.02.2010 0:49:45)
[#] Ответ на: комментарий от e3d08dff 08.02.2010 0:43:12  

Ты хоть прочитал то, что я написал? Вот код на Groovy++:

 
   1. @Typed   
   2. package test   
   3.    
   4. def swap(int[] a, int i, int j) {   
   5.     def temp = a[i]   
   6.     a[i] = a[j]   
   7.     a[j] = temp   
   8. }   
   9.    
  10. def quicksort(int[] a, int L, int R) {   
  11.     int m = a[((L+R)/2).intValue()]   
  12.     int i=L   
  13.     int j=R   
  14.     while (i<=j) {   
  15.         while (a[i]<m) i++   
  16.         while (a[j]>m) j--   
  17.         if (i<=j) {   
  18.             swap(a, i, j)   
  19.             i++   
  20.             j--   
  21.         }   
  22.     }   
  23.     if (L<j) quicksort(a,L,j)   
  24.     if (R>i) quicksort(a,i,R)   
  25. }   
  26. def quicksort(int[] a) {   
  27.     quicksort(a, 0, a.length-1)   
  28. }   
  29.    
  30. // Sample data   
  31. int[] a = new int[100000]   
  32. a.eachWithIndex {int x, int i ->   
  33.     a[i] = i*3/2+1   
  34.     if (i%3==0) a[i] = -a[i]   
  35. }   
  36.    
  37. int t1 = System.currentTimeMillis()   
  38. quicksort(a)   
  39. int t2 = System.currentTimeMillis()   
  40. println t2-t1    

а свою ссылку... ну ты понЕл.

tailgunner **** (08.02.2010 0:50:15)
[#]  

>называемый Groovy 1.8 или Groovy++

ээ.. он называется только Groovy++, на Groovy 1.8 он просто базируется

thevery ** (08.02.2010 0:50:55)
[#]  

также стоило написать, что G++ - это не отдельный язык, а дополнение к компилятору groovy, и в одном классе вполне можно использовать полностью динамические groovy-методы и статически компилируемые g++-методы

thevery ** (08.02.2010 0:54:11)
[#]  

Ну ясно все, очередной никому не нужный язык.

e3d08dff (08.02.2010 0:56:27)
[#] Ответ на: комментарий от tia 07.02.2010 23:53:39  
NuclearPhoenix (фотография)

взаимоисключающие параграфы, ящитаю.

NuclearPhoenix (08.02.2010 0:56:49)
[#] Ответ на: комментарий от anonymous 08.02.2010 0:49:45  
vertexua (фотография)

Честно говоря я более склоняюсь в варианту что языки _с_ динамической типизацией не дают никакого выигрыша, зато приносят тормоза и ошибки.

Мне нужен Groovy (тем более ++), так как он совместим с Java и имеет горы синтаксического сахара. По мере изучения Scala вопрос снимается, так как замечаю что это в разы более серьезная разработка. Но вот выходят такие новости, что тормоза пропали и есть статический Groovy, и сразу интерес растет осень быстро

vertexua (08.02.2010 0:57:17)
[#]  
r (фотография)

Очень хорошо. А то неадекваты в рассылке опенждк с ужасом который они изобретают как жава7 задрали. Такое впечатление что они не заметили последние 15 лет и думают что сейчас до сих пор 95 год.

PS: Автор груви сказал, что если бы он знал про скалу в свое время - то он не писал бы груви.

r ***** (08.02.2010 0:59:12)
[#] Ответ на: комментарий от vertexua 08.02.2010 0:57:17  
r (фотография)

>Честно говоря я более склоняюсь в варианту что языки _с_ динамической типизацией не дают никакого выигрыша, зато приносят тормоза и ошибки.

Просто почти никто не умеет их готовить. А так область у них вполне есть. prototype-языки, динамически построенные прокси, прозрачные биндинги к чему-либо и т.д.

r ***** (08.02.2010 1:01:37)
[#] Ответ на: комментарий от vertexua 08.02.2010 0:57:17  

тут, собственно, пишут о похожих вещах - у g++ больше шансов стать java.next языком, чем у scala:

http://bluetrainsoftware.blogspot.com/2010/02/will-groovy-spell-end-of-scala....

thevery ** (08.02.2010 1:02:15)
[#] Ответ на: комментарий от r 08.02.2010 1:01:37  
vertexua (фотография)

> прозрачные биндинги к чему-либо и т.д.

Это наверное самое внятное применение.

vertexua (08.02.2010 1:04:14)
[#] Ответ на: комментарий от Fice 08.02.2010 0:12:26  

> Для динамического языка это действительно очень небольшое отставание.

Что-то я не понял. Компилятор статический, а язык динамический?

Casus ***** (08.02.2010 1:04:40)
[#] Ответ на: комментарий от thevery 08.02.2010 1:02:15  
r (фотография)

>тут, собственно, пишут о похожих вещах - у g++ больше шансов стать java.next языком, чем у scala:

Чудаки которые пишут это:

> I don't think its mixing of imperative and functional styles along with its weird, clearly academically experimental syntax will win out.


в качестве экспертного менния не канают.

r ***** (08.02.2010 1:04:57)
[#] Ответ на: комментарий от e3d08dff 08.02.2010 0:56:27  

Анолитик разобрался

Karapuz *** (08.02.2010 1:05:13)
[#] Ответ на: комментарий от thevery 08.02.2010 1:02:15  
vertexua (фотография)

Scala - самостоятельный язык, он не похож на Java. Он разработан как для самостоянельной разработки, так и в паре с Java в одном проекте. Он не может стать next Java, так как не наследует ее.

Groovy - полигон фич для Java на будущее, ИМХО

vertexua (08.02.2010 1:06:45)
[#] Ответ на: комментарий от Karapuz 08.02.2010 1:05:13  
vertexua (фотография)

АНОЛитик

vertexua (08.02.2010 1:07:36)
[#] Ответ на: ну так java же обгоняет asm от real_kas 08.02.2010 0:11:01  
mono (фотография)

вообще-то давно доказано, что java бысирее asm'а.

mono *** (08.02.2010 1:08:23)
[#] Ответ на: комментарий от vertexua 08.02.2010 1:06:45  
r (фотография)

>Он разработан как для самостоянельной разработки, так и в паре с Java в одном проекте.

Скоро год как - полет нормальный.

r ***** (08.02.2010 1:10:17)
[#] Ответ на: комментарий от vertexua 08.02.2010 1:06:45  

>Scala - самостоятельный язык, он не похож на Java [...]

я как бы в курсе, но это не меняет того факта, что некоторые проекты пишут только на scala, без java в явном виде.

>Groovy - полигон фич для Java на будущее, ИМХО


ну разработчики groovy сейчас имеют мало отношения к разработчикам java, да и groovy в плане синтаксического сахара и фич уже очень далеко от java ушёл.

thevery ** (08.02.2010 1:11:49)
[#]  
r (фотография)

но вот руби они этим конечно яйца отрезали по самое горло. У руби по идее один выход - загнаться под llvm на перспективу - иначе придется тихо стагнируя умирать.

r ***** (08.02.2010 1:12:02)
[#] Ответ на: комментарий от thevery 08.02.2010 1:11:49  
vertexua (фотография)

> да и groovy в плане синтаксического сахара и фич уже очень далеко от java ушёл.

смотрите ссылки которые я запостил выше. это маленькие примеры

vertexua (08.02.2010 1:26:25)
[#] Ответ на: комментарий от r 08.02.2010 1:12:02  

а как это влияет-то? Groovy же уже давно быстрее ruby...

Headius, кстати, уже давно пилит Duby - статическая версия JRuby

thevery ** (08.02.2010 1:26:36)
[#]  
anonymous_sapiens (фотография)

>Java

>скорость

лол

anonymous_sapiens (08.02.2010 1:27:34)
[#] Ответ на: комментарий от vertexua 08.02.2010 1:26:25  

>смотрите ссылки которые я запостил выше. это маленькие примеры

ээ.. я-то как бы groovy давным-давно уже использую и про эти примеры знаю...

thevery ** (08.02.2010 1:27:36)
[#] Ответ на: комментарий от anonymous 08.02.2010 0:13:30  
iZEN (фотография)

Перепиши Eclipse на C++ — ощутишь.

iZEN ***# (08.02.2010 1:30:08)
[#] Ответ на: комментарий от mono 08.02.2010 1:08:23  

>вообще-то давно доказано, что java бысирее asm'а.
Где доказано, кем?

anotheranonymous * (08.02.2010 1:31:36)
[#] Ответ на: комментарий от iZEN 08.02.2010 1:30:08  

>Перепиши Eclipse на C++ — ощутишь.
Не как о должном говорить о своих убогих попытках писать на C++ зафейленных из-за нехватки мозга, ок?

anotheranonymous * (08.02.2010 1:33:16)
[#]  
real_maverick (фотография)

писькомерство уже задолбало

все зависит от задачи и сколько времени есть на ее решение (считай бабла), а что там использовать... да пофиг по большому счету, главное чтобы задача была решена и она удовлетворяла ожижаниям заказчика.

p.s. да asm быстрее и C быстрее жабы, но при дрпустимых латенси, скорость написания на той же жабе будет в разы (если не в 10ки разов) быстрее. если прилада удовлетворяет требованиям да поКер на чем писать, всегда ваш K.O.

real_maverick ** (08.02.2010 1:37:21)
[#] Ответ на: комментарий от anotheranonymous 08.02.2010 1:31:36  
mono (фотография)

прогрессивным человечеством :)

mono *** (08.02.2010 1:39:58)
[#] Ответ на: комментарий от iZEN 08.02.2010 1:30:08  
lester (фотография)

> Перепиши Eclipse на C++ — ощутишь.

что да, то да - тот же Visual 2008 по сравнению с эклипсом как истребитель против улитки.

lester *** (08.02.2010 1:40:44)
[#] Ответ на: комментарий от mono 08.02.2010 1:39:58  

>прогрессивным человечеством :)
Ну тогда такое человечество не нужно.

anotheranonymous * (08.02.2010 1:43:05)

http://www.linux.org.ru/

Rambler's Top100 TopList