Java反射游戏的性能和备选方案!框架类路由功能

Java反射游戏的性能和备选方案!框架类路由功能,java,reflection,playframework,routes,Java,Reflection,Playframework,Routes,我正在创建一个小型Java web应用程序,在其中我定义了一个routes文件,该文件为每个操作指定应该执行的控制器的方法 为了做到这一点,我解析这个路由文件,在我的主Servlet中,根据收到的调用,我使用反射来调用所需的方法 但是,Java反射会导致基于JVM等的性能开销 因此,我想问,这是正确的程序,还是有其他方法来执行这项任务 提前多谢 反射似乎是在快速开发/测试周期中动态执行路由并向开发人员提供良好反馈的一种方法 作为消除开销的替代方案,可以想象有一个编译步骤,该步骤将从路由文件生成J

我正在创建一个小型Java web应用程序,在其中我定义了一个routes文件,该文件为每个操作指定应该执行的控制器的方法

为了做到这一点,我解析这个路由文件,在我的主Servlet中,根据收到的调用,我使用反射来调用所需的方法

但是,Java反射会导致基于JVM等的性能开销

因此,我想问,这是正确的程序,还是有其他方法来执行这项任务


提前多谢

反射似乎是在快速开发/测试周期中动态执行路由并向开发人员提供良好反馈的一种方法

作为消除开销的替代方案,可以想象有一个编译步骤,该步骤将从路由文件生成Java代码。但就我个人而言,我不建议这样做


在任何情况下,规定性能是一个问题似乎是过早的,而没有对其进行测量。

反射似乎是动态路由的一种方法,并向开发人员提供良好的反馈,所有这些都是在快速开发/测试周期中进行的

作为消除开销的替代方案,可以想象有一个编译步骤,该步骤将从路由文件生成Java代码。但就我个人而言,我不建议这样做


在任何情况下,如果没有对性能进行测量,那么规定性能是一个问题似乎为时过早。

在这种情况下,通过反射调用方法的性能开销可以忽略不计:我估计反射方法调用将花费0.1微秒的数量级,而客户端和服务器之间的网络延迟很容易达到10毫秒。也就是说,少于0.001%的响应时间是由反射开销引起的


带回家的信息:当被告知某件事情进展缓慢时,总是询问与之相比的是什么,并尝试在优化它的性能之前评估它是否能够产生可衡量的性能影响。如果您有一个实际的性能问题需要解决,请测量程序的哪些部分比较慢,对它们进行优化,然后再次测量。

在这种情况下,通过反射调用方法的性能开销可以忽略不计:我估计反射方法调用的时间大约为0.1微秒,而客户端和服务器之间的网络延迟很容易达到10毫秒。也就是说,少于0.001%的响应时间是由反射开销引起的


带回家的信息:当被告知某件事情进展缓慢时,总是询问与之相比的是什么,并尝试在优化它的性能之前评估它是否能够产生可衡量的性能影响。如果您有实际的性能问题需要解决,请测量程序的哪些部分速度慢,对其进行优化,然后再次测量。

听起来您好像在试图重写播放框架。为什么不改用Play的路由呢?你也可以看看SpringMVC的路由器。我想了解的是,这种路由是如何工作的,以及实现这种功能的最佳方式。也谢谢你的链接,我会查出来的!听起来你在试图重写播放框架。为什么不改用Play的路由呢?你也可以看看SpringMVC的路由器。我想了解的是,这种路由是如何工作的,以及实现这种功能的最佳方式。也谢谢你的链接,我会查出来的!