`
bearsorry
  • 浏览: 94390 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

用java分析hash表结构及性能(三)

 
阅读更多

 貌似前面一篇的存储空间的测试木有弄上来。。。这里在把代码附上吧:

package cn.java1118;

public class TestMemory {
	
	public static void main(String[] args) {
		
		System.out.println("刚开始时----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
		System.out.println("刚开始时----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
		System.out.println("刚开始时----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
		//调用完一个hashmap之后
		MyHashMap04<String, String> map = new MyHashMap04<String, String>();
		for(int i=0;i<1000000;i++){  
	        map.add(""+i, ""+i*100);  
	        }
		System.out.println("调用了hashmap之后----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
		System.out.println("调用了hashmap之后----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
		System.out.println("调用了hashmap之后----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
		//开辟同样大的数组空间之后
//		String[] aaa = new String[1000000];
//		 for (int i = 0; i < 1000000; i++) {
//			    aaa[i] = new String("aaa");
//			 }
//		System.out.println("调用数组之后----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
//		System.out.println("调用数组之后----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
//		System.out.println("调用数组之后----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
	}

}

 

刚开始时----虚拟机上空闲的内存量为:4868664

刚开始时----虚拟机上内存总量为:5177344

刚开始时----虚拟机试图使用的最大内存量为:832438272

调用数组之后----虚拟机上空闲的内存量为:16260656

调用数组之后----虚拟机上内存总量为:44433408

调用数组之后----虚拟机试图使用的最大内存量为:832438272

刚开始时----虚拟机上空闲的内存量为:4905008

刚开始时----虚拟机上内存总量为:5177344

刚开始时----虚拟机试图使用的最大内存量为:832438272

调用了hashmap之后----虚拟机上空闲的内存量为:69518912

调用了hashmap之后----虚拟机上内存总量为:169803776

调用了hashmap之后----虚拟机试图使用的最大内存量为:832438272

这是我测试了几次的效果。。。每次测试的时候都是使用hashmap比数组所余下的空间要大一些,为了试验的准确性,我是顺者测,逆着测,重启eclipse测,开机重启测。。。各种测啊。。。结果都差不多。。。终于搞定了!!!!!

 

 

但我发现了,我的代码还得大大修改。。。暂时先这样吧。。。

<!--EndFragment-->
分享到:
评论
2 楼 luliangy 2012-02-06  
超姐啊,原来你的三篇关于哈希的博客是这么写的啊~
1 楼 hupengwei 2011-11-26  
超姐强悍!向你学习!~~

相关推荐

    哈希计算工具 java-hash.7z

    综上所述,`java-hash.7z` 工具包可能包含用于Java环境下的各种哈希计算工具和示例,帮助开发者进行数据校验、安全存储、性能优化等工作。通过理解和应用这些哈希计算技术,可以提升软件的安全性和效率。

    打造最快的Hash表(和Blizzard的对话)

    通过上述分析,我们可以看到Blizzard的Hash表实现不仅体现了对散列技术的深刻理解,而且还展示了如何利用多个散列值来进一步提高Hash表的性能和准确性。这种技术尤其适用于处理大量数据的情况,能够显著减少冲突的...

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...

    哈希表java实现及简单演示

    哈希表,又称为散列表,是一种数据结构,它通过使用散列函数将键(Key)映射到数组的特定位置来实现快速访问。在Java中,哈希表的实现主要依赖于`java.util.HashMap`类,它是基于哈希表的Map接口实现。在这个Java版...

    10种java性能优化方案.docx

    - **选择高效的算法和数据结构**:例如,使用哈希表而不是链表进行查找操作。 - **避免不必要的计算**:如文档中提到的,优化算法的关键部分,特别是那些占总运行时间较大比例的部分。 - **利用缓存技术**:通过...

    数据结构 课件java版本

    本课件“数据结构 课件java版本”是基于Java编程语言来讲解这一主题的,旨在帮助学生和开发者深入理解数据结构的基本概念,并掌握用Java实现这些数据结构的方法。 在Java中,数据结构主要分为以下几类: 1. **数组...

    一致性hashjava实现

    Ketama一致性哈希算法由Last.fm的工程师开发,其设计目标是优化分布式哈希表的性能,特别是在处理大量小键值对时。它通过引入虚拟节点的概念,提高了哈希空间的分布均匀性,减少了因节点变动导致的数据迁移。 1. **...

    java描述版数据结构(简单易懂)

    哈希表(Hash Table)是一种通过哈希函数快速定位数据的数据结构,实现了键值对的快速查找。Java中的哈希表主要由`java.util.HashMap`和`java.util.Hashtable`类代表,具有O(1)的平均查找时间复杂度。 六、高级排序...

    uthash开源的hash函数实现

    UTHASH 是一个开源的 C 语言库,提供了一种简单且高效的哈希表实现,用于在 C 代码中快速查找和管理数据结构。这个库的主要功能是提供一个宏定义的集合,可以方便地将结构体转化为哈希表,进而进行添加、删除、查找...

    Java-codes.rar_HASH JAVA_huffman

    在给定的“Java-codes.rar_HASHJAVA_huffman”压缩包中,包含了多个与Java编程相关的示例代码,主要涉及哈夫曼编码(Huffman Coding)、快速排序(Quicksort)、哈希表(Hash)以及一种名为“q_sort”的排序算法。...

    PersistentIdealHashTree-Java实现

    通过以上分析,我们可以看出,PersistentIdealHashTree的Java实现不仅涉及到数据结构的设计和优化,还需要考虑并发编程中的线程安全问题。理解并掌握这种数据结构的实现原理,对于提升Java程序员在大数据处理和并发...

    在Java中运用Hashtables.rar_hash table

    在Java编程语言中,哈希表(Hash Table)是一种常用的数据结构,它的实现通常通过`Hashtable`类。这个数据结构提供了快速的插入、删除和查找操作,其平均时间复杂度为O(1)。`Hashtable`是Java集合框架的一部分,位于...

    Hash map 哈希表

    哈希表,也被称为Hash Map,是计算机科学中一种高效的数据结构,用于存储键值对。它通过一种称为哈希函数的过程将键映射到数组的特定位置,从而实现快速的查找、插入和删除操作。在哈希表中,查找时间通常接近常数...

    Java算法题,数据结构分析和实现.zip

    在本压缩包“Java算法题,数据结构分析和实现.zip”中,主要涵盖了与Java编程相关的算法题目以及数据结构的深入分析和实现。数据结构是计算机科学中的核心概念,它研究如何有效地组织和存储数据,以便高效地进行访问...

    Java思维导图xmind文件+导出图片

    redis使用常见问题及性能优化思路 redis高可用及高并发实战 缓存击穿、缓存雪崩预防策略 Redis批量查询优化 Redis高性能集群之Twemproxy of Redis 数据存储 MongoDB NOSQL简介及MongoDB支持的数据类型分析 ...

    最快的排序算法 javahash实现-Java-哈希算法-最快的实现,排序算法数据结构

    8. 数据结构的选择:在选择数据结构时,需要考虑到ハシ表、树形结构、图结构等不同的数据结构的优缺点,并选择合适的数据结构来实现哈希算法。 9. 安全性问题:在实现哈希算法时,需要考虑到安全性问题,例如选择...

    ConsistentHash:一致性hash算法的 java 和 C++ 实现

    在Java中实现一致性哈希,可以使用JDK自带的`java.util.HashMap`或者第三方库如Google的Guava库中的`com.google.common.hash.Hashing`类来计算哈希值。然后,为了实现环形结构,可以自定义一个`Node`类表示节点,并...

    数据结构 java 软件工程笔试

    5. Hash表查找效率: 最好的情况下,哈希表的查找复杂度为O(1),这是理想情况下的常数时间复杂度,因为哈希函数能直接定位到数据。 --- 第二部分软件工程知识点: 1. 软件能力成熟度模型(CMM): CMM有5个成熟...

    Java语言Consistent Hash算法学习笔记(代码示例)

    一致性哈希算法是一种分布式哈希表(Distributed Hash Table, DHT)的解决方案,它主要应用于分布式缓存、负载均衡等领域。在Java中,一致性哈希算法能够解决节点动态增减时,数据映射关系的稳定性和高效性问题。...

Global site tag (gtag.js) - Google Analytics