如何 做网站跳转网站关键词设置代码

diannao/2026/1/16 21:20:30/文章来源:
如何 做网站跳转,网站关键词设置代码,佛山营销网站开发怎么选,在线制作表情包生成器软件用数百万个对象填充HashMap会很快导致诸如内存使用效率低下#xff0c;性能低下和垃圾回收等问题。 了解如何使用堆外CronicleMap #xff0c;其中可以包含数十亿个对象#xff0c;而对堆的影响很小或没有。 当我们要使用中小型数据集时#xff0c;内置的Map实现#xff… 用数百万个对象填充HashMap会很快导致诸如内存使用效率低下性能低下和垃圾回收等问题。 了解如何使用堆外CronicleMap 其中可以包含数十亿个对象而对堆的影响很小或没有。 当我们要使用中小型数据集时内置的Map实现例如HashMap和ConcurrentHashMap是出色的工具。 但是随着数据量的增长这些 Map的实现正在恶化并开始表现出如约开放sourceed的系列文章的第一篇文章中一些令人不快的缺点CronicleMap 。 堆分配 在下面的示例中我们将使用Point对象。 Point是一个POJO具有公共默认构造函数以及X和Y属性int的getter和setter。 以下代码段将一百万个Point对象添加到HashMap final MapLong, Point m LongStream.range( 0 , 1_000_000) .boxed() .collect( toMap( Function.identity(), FillMaps::pointFrom, (u,v) - { throw new IllegalStateException(); }, IllegalStateException(); }, HashMap:: new ) ); // Conveniency method that creates a Point from // a long by applying modulo prime number operations private static Point pointFrom( long seed) { final Point point new Point(); point.setX(( int ) seed % 4517 ); point.setY(( int ) seed % 5011 ); return point; } 我们可以很容易地看到堆上分配的对象数量以及这些对象消耗多少堆内存 Pers-MacBook-Pro:chronicle-test pemi$ jmap -histo 34366 | head | head num #instances #bytes class name (module) ------------------------------------------------------- 1 : 1002429 32077728 java.util.HashMap$Node (java.base 10 ) 2 : 1000128 24003072 java.lang.Long (java.base 10 ) 3 : 1000000 24000000 com.speedment.chronicle.test.map.Point 4 : 454 8434256 [Ljava.util.HashMap$Node; (java.base [Ljava.util.HashMap$Node; (java.base 10 ) 5 : 3427 870104 [B (java.base 10 ) 6 : 185 746312 [I (java.base 10 ) 7 : 839 102696 java.lang.Class (java.base 10 ) 8 : 1164 89088 [Ljava.lang.Object; (java.base [Ljava.lang.Object; (java.base 10 ) 对于每个Map条目都需要在堆上创建Long HashMap$Node和Point对象。 还有许多创建了HashMap$Node对象的数组。 这些对象和数组总共消耗了88,515,056字节的堆内存。 因此每个条目平均消耗88.5个字节。 注意额外的2429 HashMap$Node对象来自Java内部使用的其他HashMap对象。 堆外分配 与此相反 CronicleMap使用很少的堆内存运行以下代码时可以看到 final MapLong, Point m2 LongStream.range( 0 , 1_000_000) .boxed() .collect( toMap( Function.identity(), FillMaps::pointFrom, (u,v) - { throw new IllegalStateException(); }, IllegalStateException(); }, () - ChronicleMap .of(Long. class , Point. class ) .averageValueSize( 8 ) .valueMarshaller(PointSerializer.getInstance()) .entries(1_000_000) .create() ) ); Pers-MacBook-Pro:chronicle-test pemi$ jmap -histo 34413 | head | head num #instances #bytes class name (module) ------------------------------------------------------- 1 : 6537 1017768 [B (java.base 10 ) 2 : 448 563936 [I (java.base 10 ) 3 : 1899 227480 java.lang.Class (java.base 10 ) 4 : 6294 151056 java.lang.String (java.base 10 ) 5 : 2456 145992 [Ljava.lang.Object; (java.base [Ljava.lang.Object; (java.base 10 ) 6 : 3351 107232 java.util.concurrent.ConcurrentHashMap$Node (java.base 10 ) 7 : 2537 81184 java.util.HashMap$Node (java.base 10 ) 8 : 512 49360 [Ljava.util.HashMap$Node; (java.base [Ljava.util.HashMap$Node; (java.base 10 ) 可以看出没有为Java分配对象 CronicleMap条目因此也没有堆内存。 CronicleMap不会分配堆内存而是分配堆外内存而不是分配堆内存。 假设我们使用标志-XX:NativeMemoryTrackingsummary启动JVM则可以通过发出以下命令来检索正在使用的堆外内存量 Pers-MacBook-Pro:chronicle-test pemi$ jcmd 34413 VM.native_memory | grep Internal VM.native_memory | grep Internal - Internal (reserved30229KB, committed30229KB) 显然我们的一百万个对象使用略多于30 MB的堆外RAM放置在堆外内存中。 这意味着 CronicleMap使用的CronicleMap平均需要30个字节。 这比需要88.5字节的HashMap内存有效得多。 实际上我们节省了66的RAM内存和近100的堆内存。 后者很重要因为Java垃圾收集器只能看到堆上的对象。 注意我们必须在创建时决定CronicleMap最多可以容纳多少个条目。 相比于 HashMap可以随着我们添加新的关联而动态增长。 我们还必须提供一个序列化程序 即PointSerializer.getInstance() 本文稍后将对此进行详细讨论。 垃圾收集 许多垃圾回收GC算法在与堆中存在的对象的平方成比例的时间内完成。 因此例如如果我们将堆上的对象数量加倍则可以预期GC将花费四倍的时间才能完成。 另一方面如果我们创建的对象增加了64倍则预期的预期GC时间将增加1,024倍。 这有效地阻止了我们创造出巨大的 HashMap对象。 使用ChronicleMap我们可以放置新的关联而无需担心垃圾收集时间。 序列化器 堆内存与堆外内存之间的介体通常称为 序列化器 。 ChronicleMap带有许多针对大多数内置Java类型例如Integer Long String等的预配置序列化器。 在上面的示例中我们使用了一个自定义的序列化程序该序列化程序用于在堆内存与堆外内存之间来回转换Point 。 序列化器类如下所示 public final class PointSerializer implements SizedReaderPoint, SizedWriterPoint { private static PointSerializer INSTANCE new PointSerializer(); public static PointSerializer getInstance() { return INSTANCE; } INSTANCE; } private PointSerializer() {} Override public long size( NotNull Point toWrite) { return Integer.BYTES * 2 ; } Override public void write(Bytes out, long size, NotNull Point point) { out.writeInt(point.getX()); out.writeInt(point.getY()); } NotNull Override public Point read(Bytes in, long size, Point using) { Nullable Point using) { if (using null ) { using new Point(); } using.setX(in.readInt()); using.setY(in.readInt()); return using; } } 上面的序列化器实现为无状态单例并且write()和read()方法中的实际序列化非常简单。 唯一棘手的部分是我们需要在 如果“ using”变量未引用实例化/重用的对象则为read()方法。 如何安装 当我们想在项目中使用ChronicleMap时只需在pom.xml文件中添加以下Maven依赖项就可以访问该库。 dependency groupId net.openhft/ groupId artifactId chronicle-map/ artifactId version 3.17.3/ version / dependency 如果您使用的是另一种构建工具例如Gradle则可以通过单击此链接来了解如何依赖ChronicleMap 。 短篇小说 以下是ChronicleMap的一些属性 堆外存储数据 几乎总是比HashMap更高的内存效率 实现ConcurrentMap 不影响垃圾收集时间 有时需要一个序列化器 具有固定的最大条目大小 可以容纳数十亿个协会 是免费和开源的 翻译自: https://www.javacodegeeks.com/2019/08/java-chroniclemap-part-1-go-off-heap.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

淘宝网页制作代码优化网站聊城

一、在nginx配置文件的server标签内加入以下标签和内容 location /logs {alias /data/nginx/logs;#nginx日志目录autoindex on;#打开目录浏览功能autoindex_exact_size off;#默认为on,显示出文件的确切大小,单位是bytes#显示出文件的大概大小,单位是kb或者mb或者gbautoinde…

做关于手机的网站 该如何设计百度搜索页

首先我们需要知道选择器的类型有这些:选择器栗子ID#idclass.class标签p属性[typetext]伪类:hover伪元素::first-line相邻选择器、子代选择器>而这些css的选择器是有权重(即优先级)的,在不同选择器的样式出现冲突时候,会采用权重高的选择器…

网站服务器和空间的区别我国做民宿的网站

.cn是中国的国家顶级域名(ccTLD),在互联网域名系统中起着重要的作用。在本文中,我们将重点探讨.cn域名的层次结构和级别,并解释每个级别的含义和应用。 一、域名的层次结构 域名采用了一种典型的层次结构&#xff0c…

网站编程 mysql更改网站描述

数据库班级字段怎么定义名称在Java中,每个类都有一个名称。 类位于包中,这使我们程序员可以一起工作,避免名称冲突。 我可以命名我的班级A ,也可以命名您的班级A ,只要它们位于不同的程序包中,它们可以很好…

做问卷的网站有哪些内容wordpress幻灯片代码

逗号表达式和赋值表达式是C语言中常用的表达式类型。它们可以用于各种目的,包括计算和评估表达式、初始化变量、为函数调用提供参数以及将值分配给变量。 逗号表达式 逗号表达式允许在单个语句中计算和评估多个表达式。逗号分隔每个表达式,并且表达式从…

昆山做网站公司哪家好wordpress运行环境要求

现象: 通过抓包看到在部分客户端上跨域的非简单请求只发送一个预检的OPTIONS请求,之后的真实请求并没有发送。 出现问题的环境: 部分IOS低版本系统。 windows系统微信内必现(2020-04-29)。 分析 通过上面条件OPT…

中铁建设集团门户网登录网站wordpress 建立数据库连接时出错

交叉渡线铁路道岔是铁路上的一种,都是火车运行的基础设施,只不过由于道岔型号不同,通过机车也不相同,对此小编将交叉渡线铁路道岔的型号及使用介绍如下:一、交叉渡线铁路道岔选择基本原则(1)轨距一致:如ZDK…

用php做电商网站有哪些浙江网站建设企业名录

火狐浏览器怎么设置自动刷新?火狐浏览器为用户提供最新的搜索、网址导航、新闻资讯、网络购物等服务。还有对用户的隐私保护,个性化设置、更快的上网速度等功能,火狐浏览器要怎么设置自动刷新呢,下面就给大家分享具体步骤。 1、首先打开火狐…

做网站广告词seo引擎优化怎么做

公众号关注 “GitHubDaily”设为 “星标”,带你了解技术圈内新鲜事!来自量子位无需系统密码,就能添加新的 sudo 用户、获取 root 权限,事后还能删除不留痕迹。这是 GitHub 安全研究员 Kevin Backhouse 发现的一个 Ubuntu 系统大漏…

网站的建设内容企业的网站开发费用如何入账

开发项目中安装了Newtonsoft.Json组件,遇到了必须给Newtonsoft.Json降版本的问题。 原因是:项目是MVC项目,WebApi模块必须使用framework4.5.0.0的版本。而我们在安装其他组件时,不小心升级了Newtonsoft.Json,导致了系统可以编译通…

嘉兴网站建设方案咨询站长工具seo综合查询腾讯

好迷茫啊,心理有事情不知道从何说起,

口碑好的徐州网站建设泰安建材网站建设电话

正题 题目链接:https://www.luogu.com.cn/problem/AT4119 题目大意 一个集合S{k∈[1,n]∪N}S\{k\in[1,n]\cup N\}S{k∈[1,n]∪N},它的所有子集作为元素组成的集合中要求满足每一个数字的出现之和不小于222,求方案数对PPP取模。 1≤n≤3000,P∈[108,109…

苏州安岭网站建设公司二手网站开发

1. 先看一个例子 package mainimport "fmt"func main() {var a *int*a 10fmt.Println(*a) }运行结果是啥呢? 问:为什么会报这个panic呢? 答:因为如果是一个引用类型,我们不仅要声明它,还要为…

如何用图片文字做网站百度网址安全中心

文章目录 一、需求:二、问题解决步骤1、给需要转换的列绑定formatter属性2、获取字典项3、编写formatter属性绑定的方法 一、需求: 后端有时候返回的是字典的键值,在前端展示时需要转成中文值 后端返回的是dictValue,现在要转换…

没有备案的网站百度不收录上海包装设计公司有哪些

控制与状态机算法是计算机科学、电子工程和自动化领域中常用的一种设计工具,它用来描述一个系统的行为,该系统在不同时间点可以处于不同的状态,并且其行为取决于当前状态以及输入的信号或事件。状态机算法的核心概念包括: 状态(State):系统的任何可能配置。每个状态代表…

石家庄网站维护怎样做直播网站

synchronized的优化策略 一:synchronized 的"自适应"1.1:偏向锁 二:锁消除三:锁粗化 一:synchronized 的"自适应" 锁升级的过程: (1)未加锁的状态(无锁) 当代码中开始调用执行synchronized (2)偏向锁 遇到锁冲突 (3)轻量级锁 冲突进一步提升 (4)重量级锁 …

有什么ae做动图的网站电子手表网站

145. 二叉树的后序遍历 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[3,2,1]示例 2: 输入:root [] 输出:[]示例 3: 输入&…

抖音小程序多少钱抖音关键词优化排名

因为触及敏感词v-p-n,需要将 ‘-’去掉。 设备默认账号默认密码深信服产品sangforsangfor sangfor2018 sangfor2019深信服科技 ADdlanrecover深信服负载均衡 AD 3.6adminadmin深信服WAC ( WNS V2.6)adminadmin深信服v-p-nAdminAdmin深信服ipsec-V-P-N (SSL 5.5)AdminAdmin深信…

海南响应式网页建设找哪家优化网站的公司

今天介绍如何利用pycharm创建一个新的项目,然后将项目上传到github,以便日后的学习记录,和版本管理。比如现在我想创建一个项目专门用来学习和研究时间序列算法。 创建虚拟环境 # 创建一个新的虚拟环境 conda create -n TimeSeries python3…

域名制作网站网站开发毕业答辩演讲稿范文

前言 不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。 其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用&…