|
|
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОзверинДа само собой круто, но нафига?:) Например, Query Language и binding с compile time проверками. Может возникнуть ситуация с generic - когда вначале радовались, и описывали все подряд...а потом появились классы типа Код: java 1. и стали плеваться и искать некий компромисс. Скажем твердое и решительное нет замыканиям, ссылкам на методы и прочие лямба выражения;) Я в том плане, что в java по моему хватает проблем, начиная от многопоточности и безопасной инициализации объекта, заканчивая условной кроссплатформенностью (про win и linux можно поспорить, но как только вспоминаем j2me - начинаются танцы с бубном) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 15:37:01 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ОзверинМожет возникнуть ситуация с generic - когда вначале радовались, и описывали все подряд...а потом появились классы типа Код: java 1. А меня генерики радуют до сих пор. Клинических случаев у себя на проектах ещё не наблюдал. Единственное что не всегда с наскока легко понять стоит ли тут сделать generic или лучше обычный overload. Потому как всё зависит от ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 15:41:37 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ОзверинBlazkowiczпропущено... Например, Query Language и binding с compile time проверками. Может возникнуть ситуация с generic - когда вначале радовались, и описывали все подряд...а потом появились классы типа Код: java 1. и стали плеваться и искать некий компромисс. Скажем твердое и решительное нет замыканиям, ссылкам на методы и прочие лямба выражения;) Я в том плане, что в java по моему хватает проблем, начиная от многопоточности и безопасной инициализации объекта, заканчивая условной кроссплатформенностью (про win и linux можно поспорить, но как только вспоминаем j2me - начинаются танцы с бубном) Проблем с многопоточностью нет там, где этой многопоточности нет вообще. Но там ее эмулируют через спагетти из колбаков и костыля "процесс на обработчик". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 15:54:53 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
Лагманно вчера снова открыл freepascal - это как голоток свежего воздуха. function of object и вложенные функции, например - киллер фичи, устраняющие необходимость каких-либо паттернов и т.п..У ява-рантайма есть одно, но очень важное преимущество: можно взять классы созданные в одной версии и использовать их в другой. Можно изменить реализацию класса и, опять-таки, использовать его без каких-либо изменений других частей проекта. CORBA/(D)SOM, теоретически, обеспечивают и такую возможность, но (D)SOM вообще умер, а желающих использовать CORBA - как-то не очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 16:44:54 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
Cейчас, пока ещё не вышла Java8 с няшными замыканиями, я обучу вас некоторым анальным упражнениям: 1) Создаем интерфейсы Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ]|> public interface Function<A> { A call(); } public interface Function1<A, A1> { A call(A1 a1); } ... public interface Function1<A, A1..AN> { A call(A1 a1,.. AN); } public interface Procedure { void call(); } ... public interface Procedure2<A1, A2,.. AM> { void call(A1 a1, A2 a2, ... A3 aM); } " border="0" align="center" alt="Картинка с другого сайта."/> , где N и M удовлетворяют средней запущенности вашего проекта. Создаём публичные поля (ну можно и геттеры, не суть) Код: java 1. 2. 3. 4. 5. 6. И - профит, можно даже скукоживать как полноценные замыкания: Код: java 1. 2. 3. 4. 5. 6. разве не няшно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2013, 01:54:48 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ну там только Код: java 1. 2. соответственно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2013, 01:58:09 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
и Код: java 1. надеюсь это не испортит общие впечатления от примера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2013, 01:58:59 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ЛагманCейчас, пока ещё не вышла Java8 с няшными замыканиями, я обучу вас некоторым анальным упражнениям: 1) Создаем интерфейсы Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ]|> public interface Function<A> { A call(); } public interface Function1<A, A1> { A call(A1 a1); } ... public interface Function1<A, A1..AN> { A call(A1 a1,.. AN); } public interface Procedure { void call(); } ... public interface Procedure2<A1, A2,.. AM> { void call(A1 a1, A2 a2, ... A3 aM); } " border="0" align="center" alt="Картинка с другого сайта."/> public interface Function<A> { A call(); } public interface Function1<A, A1> { A call(A1 a1); } ... public interface Function1<A, A1..AN> { A call(A1 a1,.. AN); } public interface Procedure { void call(); } ... public interface Procedure2<A1, A2,.. AM> { void call(A1 a1, A2 a2, ... A3 aM); } [/src]" border="0" align="center" alt="Картинка с другого сайта."/> , где N и M удовлетворяют средней запущенности вашего проекта. Создаём публичные поля (ну можно и геттеры, не суть) Код: java 1. 2. 3. 4. 5. 6. И - профит, можно даже скукоживать как полноценные замыкания: Код: java 1. 2. 3. 4. 5. 6. разве не няшно? Ты тоже считаешь баланс по мобилкам в жабе, а не в DB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2013, 06:36:07 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
Лагман, сидел минут 15 фтыкал, что вообще происходит ;) Запущенность проекта многократно увеличицо..как по мне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 11:43:02 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
Поднимаю же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2013, 16:13:58 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
отрефакторил велосипедный орм, например https://github.com/aelio/odb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2013, 02:56:47 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
Узнал что foreach - непозволительно затратная операция. Доступ к public полю в разы быстрее геттера, а массив - в разы быстрее public поля. Гори оно огнем - выходит, надо выбирать, или реалтайм или ООП, какбы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2013, 05:33:16 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ЛагманГори оно огнем - выходит, надо выбирать, или реалтайм или ООП, какбы. это всегда так было. Или ООП или быстро Или ооп маленький размер программы Или ООП или маленький вес проги в оперативке. Всё в мире с жертвами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2013, 13:18:40 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
> Доступ к public полю в разы быстрее геттера, А где вы это узнали? Где-то в жж elizarov писал и приводил док-ва, что геттеры в итоге компилятся в одну ассемблерную команду. И верить я склонен ему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 15:18:52 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
Ну я как-то больше верю системному таймеру, который после замены геттера на паблик, показывает вдвое меньшее время. Не знаю, связано ли это со спецификой задачи, и того, в каком порядке написаны мат.операции с результатом этого паблика/геттера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 16:42:41 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ЛагманНу я как-то больше верю системному таймеру, который после замены геттера на паблик, показывает вдвое меньшее время. Не знаю, связано ли это со спецификой задачи, и того, в каком порядке написаны мат.операции с результатом этого паблика/геттера. Что тестировали? Java интепретатор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 16:44:32 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ЛагманУзнал что foreach - непозволительно затратная операция. Для массива или коллекции? Для какой-то конкретной коллекции? Не пробовали разобраться почему? ЛагманДоступ к public полю в разы быстрее геттера, а массив - в разы быстрее public поля. Пишут что если таки сделать final акцессор или дождаться JIT компиляции, то с большой вероятностью getter заинлайнится. ЛагманГори оно огнем - выходит, надо выбирать, или реалтайм или ООП, какбы. Ну, realtime на любом языке высокого уровня требует ухищрений с оглядкой и на ОС и на CPU. Тот же Disruptor - набор хаков. Где-то был забавный пример про бины на базе Unsafe. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 17:17:28 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, наличие пустого foreach(Object obj: arrayList) {} занимало 95% времени метода, это при том что в нем было решение 1024*1024 квадратных уровнений :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 17:28:59 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ну, т.е. и arrayList там пустой был ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 17:29:41 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
хотя может уравнений поменьше было.. но не менее 2-3к точно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 17:31:46 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
Лагманну, т.е. и arrayList там пустой был Возможно это очень часто происходило, поэтому создалось огромное количетство ненужных интераторов. А почему не массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 17:59:07 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
2Лагман - вы делаете какие-то неправильные тесты или тесты правиьлные, но вывод вы делаете неверно, или используете неправильную jvm. С тестами в яве надо быть очень осторожным. foreach - в жаве нету, есть for(T a:b), которое вы, по всей вероятности, имели в виду. Отличается от итерации по int она тем, что при каждом входе создает дополнительный обьект Iterator, только и всего. Соответственно "Узнал что foreach - непозволительно затратная операция." совершенно неверная формулировка. Таковой она будет в редких случаях, а именно - когда говнокодеры много раз в цикле делают цикл foreach. А еще, в седьмой яве оно создается в стеке, если этот итератор удовлетворяет определенным уловиям для эскейп-анализа (а это так, скорей всего - нет финализатора и ссылка не покидает области видимости). Поэтому все равно foreach должен быть быстр. геттеры вообще часто инлайнятся (в серверной jvm), то есть на уровне кода (после jit) не делается call ради чтения одной ячейки. Вместо ArrayList<Integer> можно можно юзать классы либы trove. На больших данных это сэкономит и память и процессорное время. Хотя и с trove можно умудриться сделать тест, который покажет не то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 19:46:54 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
chabapok, мне важнее чтобы код выполнялся, а не ваши домыслы про версии jvm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2013, 14:07:17 |
|
||
|
Пятничный "что нового узнали за неделю" треп.
|
|||
|---|---|---|---|
|
#18+
ЛагманУзнал что foreach - непозволительно затратная операция. Доступ к public полю в разы быстрее геттера, а массив - в разы быстрее public поля. Гори оно огнем - выходит, надо выбирать, или реалтайм или ООП, какбы. А тесты можете выложить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2013, 23:22:16 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38186488&tid=2129473]: |
0ms |
get settings: |
14ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
44ms |
get topic data: |
19ms |
get forum data: |
4ms |
get page messages: |
99ms |
get tp. blocked users: |
3ms |
| others: | 367ms |
| total: | 580ms |

| 0 / 0 |
