Наскільки щвидко працює Java Reflection API
Моя попередня замітка присвячена викорисатанню Java Reflection API. На основі цієї технології працює багато фішок мови Java. Наприклад Serialization та Enterprise Java Beans. Фактично всі вони полегшують дуже сильно життя розробнику ПО з використанням Java. Однак, вже доволі давно я прочитав в Developing without EJB про те, що все що базується на основі цієї технології працює не дуже швидко. Тести я дуже люблю, тому вирішив перевірити, наскільки це твердження правдиве. А незодавно в мене з'явилась хвилинка часу, для цього.
Методика тестування
За основу для написання тесту я взяв свій невадалий тест для перевірки швикдості виклику методу в java.
Однак тоді виникла проблема з тим, що JIT від Sun дуже добре передбачає такі речі, як розрахунки та виконує їх миттєво. Тому в якості методу, який я викликаю, я вирішив використовувати щось складніше ніж простий інкремент. Вирішив використовувати суму випадкових чисел, де кожне наступне число отримується за формулою:
rand = (max*rand+min)%(max-min);
Перший член такоъ послідовності береться на основі миттєвого таймштампу. Такий генератор випадкових чисел хоч і є дуже брудним, однак працює доволі непогано для широкого діапазону значень max та min.
..Читати далі



