Java 执行string.endsWith()工作的优化方法。
我需要查找应用服务器接收到的所有web请求,以检查URL是否具有.css、.gif等扩展名 提到tomcat是如何侦听每个请求的,他们选择了正确配置的Servlet来提供服务。 , 以下是我要实施的想法:Java 执行string.endsWith()工作的优化方法。,java,regex,string,algorithm,bytearray,Java,Regex,String,Algorithm,Bytearray,我需要查找应用服务器接收到的所有web请求,以检查URL是否具有.css、.gif等扩展名 提到tomcat是如何侦听每个请求的,他们选择了正确配置的Servlet来提供服务。 , 以下是我要实施的想法: 加载我们想要比较的所有扩展,并获取字节 他们的代表性 通过对字节数组中的字节求和,获取此xtension的唯一值//例如:“css”.getBytes() 将结果值添加到排序列表中 每当我们收到请求时,获取URL的字节表示//例如:“flipkart.com/eshopping/images
- 加载我们想要比较的所有扩展,并获取字节 他们的代表性
- 通过对字节数组中的字节求和,获取此xtension的唯一值//例如:“css”.getBytes()
- 将结果值添加到排序列表中
- 每当我们收到请求时,获取URL的字节表示//例如:“flipkart.com/eshopping/images/theme.css”。getBytes()
- 开始对字节数组最后一个索引中的字节求和,遇到“.”点字节值时中断
- 搜索是否存在用排序列表求和的值//在此处使用二进制搜索
- 使用
查找URL中的最后一个点String.lastIndeXOf
- 使用
获取基于该字符串的扩展名String.substring
- 对于一组受支持的扩展名,请使用
,如果要将扩展名映射到其他扩展名,请使用HashSet
HashMap
char
值形成散列。)
从根本上说,我首选的绩效方法是:
- 在架构上,围绕以后很难更改的内容进行前期设计和测试
- 其他方面:
- 首先确定性能标准,以便知道何时可以停止
- 编写最简单的代码
- 用真实的数据进行测试
- 如果它的性能不够好,请使用探查器(etc)找出瓶颈所在,并对其进行优化,确保您可以使用现有测试证明其好处
- 使用
查找URL中的最后一个点String.lastIndeXOf
- 使用
获取基于该字符串的扩展名String.substring
- 对于一组受支持的扩展名,请使用
,如果要将扩展名映射到其他扩展名,请使用HashSet
HashMap
- 这听起来比实际需要复杂得多
char
值形成散列。)
从根本上说,我首选的绩效方法是:
- 在架构上,围绕以后很难更改的内容进行前期设计和测试
- 其他方面:
- 首先确定性能标准,以便知道何时可以停止
- 编写最简单的代码
- 用真实的数据进行测试
- 如果它的性能不够好,请使用探查器(etc)找出瓶颈所在,并对其进行优化,确保您可以使用现有测试证明其好处