Comments 15
Спасибо, с толком, попробую.
0
Тема интересная, но слишком специализированная.
Думаю, для большинства людей вот этой статьи будет достаточно:
www.javenue.info/post/84 — это своего рода Reflection Cookbook
Думаю, для большинства людей вот этой статьи будет достаточно:
www.javenue.info/post/84 — это своего рода Reflection Cookbook
0
Интересно было бы посмотреть тоже самое на шарпе… :))
Статья отличная!
Статья отличная!
0
На C# подобное реализуется с помощью LambdaExpression.Compile(). (http://stackoverflow.com/questions/346523/how-do-i-compile-an-expression-tree-into-a-callable-method-c как quick-start)
0
Вероятно, там понадобится DynamicMethod, который и будет вызывать target. Подозреваю, что туда добавится некоторая стоимость копирования аргументов по стеку + 1 callvirt.
0
Вероятно, там понадобится DynamicMethod, который и будет вызывать target. Подозреваю, что туда добавится некоторая стоимость копирования аргументов по стеку + 1 callvirt.
0
+4
надо было замерять не время 5 000 000 вызовов, а сначала прогнать 5 000 000 вызовов без замера, а только потом замерить. чище результаты получатся
0
Вызовы рефлекшина такие дорогие, потому что проверяется видимость, секьюрити итп вещи. Вызовы можно ускорить до уровня FastClass, итп просто вызвав у метода метод setAccessible(true). Так что, чтобы получать хороший перформанс в рефлекшине, не зачем так извращаться.
+8
отлично! не думал что setAccessible настолько скажется на производительности, спасибо. Вот что получилось:
Preparing for reflective method access: 2683
Reflective method access: 22028
Preparing for reflective accessible method access: 1746
Reflective accessible method access: 725
Preparing for fast reflective method access: 3530
Fast reflective method access: 1692
Preparing for fast reflective method access (2): 10953
Fast reflective method access (2): 588
Preparing for reflective method access: 2683
Reflective method access: 22028
Preparing for reflective accessible method access: 1746
Reflective accessible method access: 725
Preparing for fast reflective method access: 3530
Fast reflective method access: 1692
Preparing for fast reflective method access (2): 10953
Fast reflective method access (2): 588
0
UFO just landed and posted this here
интересно, как бы это дело проработало с использованием reflectasm
0
UFO just landed and posted this here
Sign up to leave a comment.
Articles
Change theme settings
Делаем reflection быстрой как прямые вызовы