Currently browsing tag

url

五种不同的 URL 参数解析方法的性能比较

因为在我们的项目中需要解析日志中的 URL 的参数,所以我对比了一下五种不同 的 URL 参数解析方法的性能。

URL 参数解析方法
  1. httpclient org.apache.http.client.utils.URLEncodedUtils
  2. URLEncodedUtils.parse(query, Charset.forName("UTF-8"));
    
  3. jettyUtil org.eclipse.jetty.util.UrlEncoded
  4. MultiMap values = new MultiMap();
    UrlEncoded.decodeTo(query, values, "UTF-8", 1000);
    
  5. tomcat org.apache.catalina.util.RequestUtil
  6. Map values = new HashMap();
    RequestUtil.parseParameters(values, query, "UTF-8");
    
  7. regex 正则表达式
  8. String u = URLDecoder.decode(url, "UTF-8");
    for (String s : parameters) {
        Pattern p = Pattern.compile(s + "=([^&]*)(&|$)");
        Matcher m = p.matcher(u);
        if (m.find()) {
            m.group(1);
        }
    }
    
  9. split 使用String 的split 方法对 URL 进行分割,然后用equals 匹配对应的 参数
  10. String u = URLDecoder.decode(url, "UTF-8");
    for (String s : parameters) {
        String[] a = new String[100];
        if (u.indexOf(s) != -1) {
            a = (u.substring(u.indexOf(s))).split("&");
            a[0].split("=");
        }
    }
    

阅读全文 “五种不同的 URL 参数解析方法的性能比较” »