Думаю, что многие уже наслышаны о магии cache padding в disruptor'е.
Однако, куда более интересный факт - наличие cache padding'а уже в самом jdk 1.5
9 янв. 2012 г.
18 дек. 2011 г.
Задачка: Сортировка по частоте
Дан (очень) большой массив целых чисел, необходимо отсортировать по частоте появления элемента в массиве.
Ограничения: постоянная память, сложность O(N log(N)).
Пример:
[ 1 3 1 ] -> [ 3 1 1 ] т.к. частота(3) = 1; частота(1) = 2
[ 7 1 1 0 ] -> [ 7 0 1 1 ]
[ 9 1 0 1 3 1 3 3 ] -> [ 9 0 1 1 3 3 3 ]
Ограничения: постоянная память, сложность O(N log(N)).
Пример:
[ 1 3 1 ] -> [ 3 1 1 ] т.к. частота(3) = 1; частота(1) = 2
[ 7 1 1 0 ] -> [ 7 0 1 1 ]
[ 9 1 0 1 3 1 3 3 ] -> [ 9 0 1 1 3 3 3 ]
20 нояб. 2011 г.
garbage free logger
We do usually log lots of messages, for instance - for further investigation in case of outage. There are lots of pros and cons - for many reasons log files are usually in more or less human readable format. For low latency applications it's a sort of waste of time as it put a load onto the system via garbage collector and app suffers from stop-the-world pauses.
19 нояб. 2011 г.
java: autoboxing и ==
С появлением java 5 появилась и такая вещь как auto boxing, на мой взгляд штука скорее вредная, чем полезная, но не суть.
Наверняка многие java программисты сходу могут ответить на вопрос «какой будет результат ?»
Тем более, что многие книги, как то Java Puzzlers, упоминают об этом.
Наверняка многие java программисты сходу могут ответить на вопрос «какой будет результат ?»
Integer a = 100;
Integer b = 100;
Integer c = 300;
Integer d = 300;
System.out.println(a == b);
System.out.println(c == d);Тем более, что многие книги, как то Java Puzzlers, упоминают об этом.
28 окт. 2011 г.
Spring Boostrap
We uses spring framework within each our project. I would like to share some small and useful tricks we use in our Bootstrap class.
To load any xml spring context you have to run smth like
It's enough in the most cases.
To load any xml spring context you have to run smth like
try {
final ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext(
new String[] {"application-context.xml"});
} catch ( final Throwable th) {
log.error("Unable to start the context : " + th.getMessage(), th);
}
It's enough in the most cases.
15 авг. 2011 г.
Два презерватива на необитаемом острове
Через какое-то время природа взяла свое и было решено «заняться любовью», однако выяснилось, что все четверо болеют венерическими заболеваниями, причем все - разными.
Поскольку никто не желал добавлять себе еще одно, то после некоторых поисков было найдено два презерватива.
Как провести все четыре возможные встречи между разнополыми партнерами?
внимание! комментарии содержат ответ.
13 июл. 2011 г.
Задачка: 12 монет и 3 взвешивания
Есть 12 монет и аптекарские весы с двумя чашами, которые могут показывать больше, меньше и равно.
Известно, что одна из монет фальшивая - отличается только по весу, причём не известно - тяжелее ли она настоящей или легче.
Как при помощи только трёх взвешиваний определить какая монета фальшивая и тяжелее ли она или легче настоящей ?
Известно, что одна из монет фальшивая - отличается только по весу, причём не известно - тяжелее ли она настоящей или легче.
Как при помощи только трёх взвешиваний определить какая монета фальшивая и тяжелее ли она или легче настоящей ?
8 июн. 2011 г.
Android: HTC MyTouch 4G
25 мая 2011 г.
java: деградация пула строк
Наверняка многие java программисты знают о существовании пула строк, который хранится в PermGen.
Кроме всего прочего каждая строка, которая была получена через
Однако, доступ к полу строк может деградировать из-за большого кол-ва строк в пуле.
В своей статье вы уверены, что знаете про строки все? автор упоминает, что сложность intern() есть O(N), где N - размер пула строк.
Надо сказать меня сильно удивило - т.к. ещё в стародавние времена, когда стали доступны исходники sun hotspot jvm 1.4 (кстати, именно из них собирался blackdown-jdk) помню, что на уровне c++ пул строк сделан как Hashtable, у которого, как известно, сложность поиска O(1) - т.е константа.
Кроме всего прочего каждая строка, которая была получена через
new String(data);можно привести к каноническому представлению посредством вызова метода intern().Однако, доступ к полу строк может деградировать из-за большого кол-ва строк в пуле.
В своей статье вы уверены, что знаете про строки все? автор упоминает, что сложность intern() есть O(N), где N - размер пула строк.
Надо сказать меня сильно удивило - т.к. ещё в стародавние времена, когда стали доступны исходники sun hotspot jvm 1.4 (кстати, именно из них собирался blackdown-jdk) помню, что на уровне c++ пул строк сделан как Hashtable, у которого, как известно, сложность поиска O(1) - т.е константа.
8 мар. 2011 г.
Задачка: Честный стражник и лжец
одна из них ведет на волю, другая - прямая дорога к смерти.
Перед каждой из дверей сидит стражник, причем один из них - лжец, а второй говорит правду и только правду; однако вы не знаете, кто из них кто.
Задав только один вопрос только одному из стражников, определить дорогу на свободу.
Каков вопрос стоит задать ?
Подписаться на:
Сообщения (Atom)