`

opencms7.5

阅读更多
// 系统编码

String systemEncoding = (new OutputStreamWriter(new ByteArrayOutputStream())).getEncoding();

HashMap vs FastHashMap:原文参考http://frenchmay.iteye.com/blog/226784
public class FastHashMap extends HashMap {   
    protected HashMap map = null;   
    protected boolean fast = false;       
    public FastHashMap() {   
            super();   
            this.map = new HashMap();   
        }   
} 
FastHashMap继承于HashMap,存储由HashMap实现的,通过fast来设置是否是以快速模式执行.可以初步认为FashHashMap是HashMap的一个代理.


public Object get(Object key) {   
        if (fast) {  
            // get方法的实现是线程安全的 
            return (map.get(key));   
        } else {   
            // 对整个map对象同步
            synchronized (map) {   
                return (map.get(key));   
            }   
        }   
    }
所以FastHashMap在get速度上比HashMap快!


public Object put(Object key, Object value) {   
        if (fast) {   
            synchronized (this) { 
                // 克隆一个map,再在map上操作,再替换map;在替换map前所有对象都读取map;  
                HashMap temp = (HashMap) map.clone();   
                Object result = temp.put(key, value);   
                map = temp;   
                return (result);   
            }   
        } else {   
            synchronized (map) {   
                return (map.put(key, value));   
            }   
        }   
    } 


做的测试是在slow模式下的FastHashMap和hashmap在单线程访问的情形下,读/取50000
个long类型的测试举例.


结果是
Result:

HashMap put 50000 Object using1.021s

FastHashMap put 50000 Object using1.221s

HashMap get 50000 Object using0.561s

FastHashMap get 50000 Object using0.04s 

分享到:
评论

相关推荐

    OpenCms7.5.x_Locale_China汉化.zip

    OpenCms 7.5.x 是一个开源的内容管理系统(CMS),专为构建和管理网站而设计。这个版本的OpenCms特别关注了对中国用户的本地化支持,因此被称为“Locale China汉化”版本。本地化(Localization)是软件开发中的一个...

    eclipse-FTP-WebDAV-OpenCms7.5.x.zip

    在"eclipse-FTP-WebDAV-OpenCms7.5.x.zip"这个压缩包中,可能包含的是专门为Eclipse设计的FTP和WebDAV插件,或者是针对OpenCms 7.5.x的开发工具集,这些工具集可能包括配置文件、库文件以及如何将这些插件集成到...

    OpenCMS开发Eclipse插件(新增支持OpenCMS7.5)

    对插件info.rsdev.eclipse.opencms.module.developer进行了功能增强,实现了按选择了项目/目录/文件进行上传;不上传传"."/"test"开头的内容;增加只对classes目录的上传\发布,本版新增支持OpenCMS7.5以上版本

    OpenCMS环境的搭建及安装步骤

    1. 下载 OpenCms7.5.x 千寻汉化包。 2. 安装成功 OpenCms 后,登录 OpenCms,在 view 中选择 Administration,然后执行 Module Management-->Import Module with HTTP,选择 org.opencms.locale.zh_yhm_7.5.1.zip,...

    OpenCMS教程

    **7.5 管理COOKIES示例** - **7.5.1** 创建和读取COOKIE; - **7.5.2** 删除COOKIE。 **7.6 显示资源的所有属性** - 使用OpenCMS API获取资源属性,并显示在页面上。 **7.7 打印HTTP请求中的所有参数** - 获取HTTP...

    opencms管方下载

    opencms 最新版本7.5,读者可以从opencms管方网站下载 http://www.opencms.org下载

    OpenCms中文指南

    ##### 7.5 管理COOKIES示例 - **设置Cookie**: ```java Cookie cookie = new Cookie("name", "value"); response.addCookie(cookie); ``` - **获取Cookie**: ```java Cookie[] cookies = request.getCookies()...

    OpenCMS内容管理入门指南(300页中文).pdf

    ##### 7.5 管理COOKIES示例 - **示例**: - 创建Cookie: `Cookie cookie = new Cookie("name", "value");` - 添加到响应: `response.addCookie(cookie);` ##### 7.6 显示资源的所有属性 - **方法**: - 遍历资源...

Global site tag (gtag.js) - Google Analytics