Pull to refresh
4
0
Сергей Куксенко @Walrus

User

Send message
Я спрашивал про перформанс.
А не про перформанс — пре и пост функционально разные операции и использовать нужно ту функционал которой нужен. Но если различия функционала не играют роли, то и выбор операции не играет роли.
И все равно никак не могу связать стек вызовов и ++(2 экз.)
А почему уточнял какой стек — так у нас стек в байткоде есть.
И второе:
— что такое стек? (в данном контексте)

PS Вопрошенное не относится к J2ME. И почти не относится к Android.
Тут хочеться сделать сплит на 2 ветки:
— а смысл передавать null? Точнее экономить 1 object?

PS Вопрошенное не относится к J2ME. И почти не относится к Android.
Не могу не спросить:
— «почти нет мест» — значит что хоть чуть но где есть, хочу узнать где и какие такие места для извращений есть,
— Почему ++counter должен быть быстрее?
Скорее всего привели доки в соответствие с жизнью.

Во первых в HotSpot нет шедулера. Все уходит в ОС, она пусть работает.
Отсюда — сначала у HotSpot чувствует себя free звать или не звать yield у ОСи.
Второе сама ОСь — чувствует себя free что делать на yield. Ой — я бы не связывался. ;)
Во первых — что значит негативно сказаться? А в реальном приложении? Какой смысл замерять что-то имеющее мало отношения к жизни.

Во вторых:
[JavaDoc on]
public static void yield()
A hint to the scheduler that the current thread is willing to yield its current use of a processor. The scheduler is free to ignore this hint.
[JavaDoc off]

Ну и в третих — нельшие по времени операции (десятки (иногда сотни) квантов) нужно мерять статистически — тогда кванты будут по фигу.

> вызывать Thread.yield().
Боже!
Что вы читали (ели/пили/курили) перед сном? ;)
> Во первых она так-же как и CUDA распараллеливает задачу на большое количество ядер
Ну тогда у меня HotSpot на моем ноуте сам распаралеливает задачу на 4 ядра.
Azul распараллеливает задачу ровно настолько насколько она уже распараллелена девелопером.
Первая картинка прям антиквариат. Где NavigableMap?
а можно так:
final int age = db.getSales()
                    .filter((Sale sale)->sale.getCost() > 50000.00)
                    .parallel()
                    .<Integer>map((Sale sale)->sale.getBuyer().getAge())
                    .reduce(0, (x,y)-> x

Тогда фильтр последовательный, а мап и редьюс параллельные.
Сейчас, я ни за что не ответственный. ;) Я в отпуске. ;)
Вот например код:
final int age = db.getSales()
                    .filter((Sale sale)->sale.getCost() > 50000.00)
                    .<Integer>map((Sale sale)->sale.getBuyer().getAge())
                    .reduce(0, (x,y)-> x<y ? x : y);

сейчас он шпарит (и будет шпарить) в один тред.
Но! Будет магический метод parallel (еще не сделан), и можно будет написать так:
final int age = db.getSales()
                    .parallel()
                    .filter((Sale sale)->sale.getCost() > 50000.00)
                    .<Integer>map((Sale sale)->sale.getBuyer().getAge())
                    .reduce(0, (x,y)-> x<y ? x : y);
Кстати, это плохо:
final int age = Collections.min(db.getSales()
                    .filter((Sale sale)->sale.getCost() > 50000.00)
                    .<Integer>map((Sale sale)->sale.getBuyer().getAge())
                    .into(new ArrayList<Integer>()));


Надо:
final int age = db.getSales()
                    .filter((Sale sale)->sale.getCost() > 50000.00)
                    .<Integer>map((Sale sale)->sale.getBuyer().getAge())
                    .reduce(0, (x,y)-> x<y ? x : y);



Кстати, а лямбды то тут причем? ;) Сравнивается то, что называется «collections bulk operations». :)
не мешайте, сэр. У меня можно сказать ломка на отдыхе, а тут тааакое ;)
впрочем, тут я спешу. Может и хватит. Но надо доказать, что хватит.
WARMUP_ITERATIONS_COUNT = 10;
too small.
etc.
И когда компиляете тест для JDK8 lambda — поставте javac ключик: -XDlambdaToMethod
Петька, приборы?
Что означают числа в таблицах?
Упссс. А мужики то не знают?
А как писать параллельные программы без MM?
Скажите это в частности Боэму, благодаря которому в С++0x11 таки появилась MM.

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity