java实践_Java怪异实践

java实践

总览

Java中有许多实践使我感到困惑。 这里只是一些。 使用-Xmx和-Xms

选项-Xmx广泛用于设置最大内存大小。 如Java HotSpot VM Options中所述,以-X开头的选项是非标准的(不保证所有VM实施都支持该选项),并且在以后的JDK发行版中,如有更改,恕不另行通知。

因此,您会认为这种广泛使用的选项将不再是非标准的。 实际上,有一个标准选项-mx和类似的-ms。 我不知道为什么这些标准选项没有得到更广泛的使用,甚至没有记载。

仅将NIO用于非阻塞IO

非阻塞IO是用于套接字的NIO的新功能。 但是,NIO套接字的默认行为是阻止。 文件仅在NIO中被阻止。 NIO2提供了一个异步接口,但是通过将您的请求传递给ExecutorService来实现(这实际上是在作弊,因为它什么也做不了您无法做的事情)

我个人更喜欢阻止NIO。 它仅在二进制连接数较少时才适用,但是按恕我直言,这是一个选项,无法获得足够的效果。

使用32位JVM节省内存

使用32位JVM保存的内存量远远少于您的想象。 现代64位JVM默认情况下最多使用32位引用,最大堆大小为32 GB。 您不太可能希望拥有更大的堆大小(如果只是为了避免很长的完整GC时间)

与64位JVM相比,32位JVM的对象标头仍然较小,但是差别很小。 64位JVM可以使用更多,更大的寄存器(在AMD / Intel x64系统上),并且可以使用更大的地址空间,从而减少内存限制。

使用线程使一切更快

使用多个线程可以提高CPU利用率,并减少IO延迟的影响。 它不能解决所有性能问题。 它不会使磁盘运行得更快,不会增加网络带宽,不会增加L3缓存的大小,不会增加CPU到主内存的带宽或使数据库显着更快的速度。

同样,使所有内容并发也不会有太大区别。 当您只有8个核心时,是否需要1000个并发集合? 不管您有多少个线程,一次都只能运行8个线程,如果您有1000个集合,则很有可能两个线程将使用同一集合。

对关键资源有选择地使用并发。 否则,您不仅有增加开销和降低应用程序速度的风险,而且还带来引入的复杂性增加得多的风险。

参考:来自Vanilla Java博客的JCG合作伙伴 Peter Lawrey在Java上的奇怪实践 。


翻译自: https://www.javacodegeeks.com/2012/06/odd-practices-in-java.html

java实践

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

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

相关文章

函数参数:

函数参数:一、位置参数:按顺序一一对应赋值 def stu(name,age,course,country) stu("刘老根",25,"linux","CN")二、关健参数:在实参中使用 号赋值(可以不按顺序) def stu(name,a…

mysql group by 重复_mysql – 使用GROUP BY删除重复项的查询

id_specific_price id_product-------------------------------1 22 23 24 35 36 37 3需要删除重复项,预期结果:id_specific_price id_product-------------------------------3 27 3SELECT *FROM ps_specific_priceWHERE id_specific_price NOT IN(SELECT MAX(id_s…

您的JAX-RS API并非天生就等于:使用动态功能

这次,我们将讨论一些有关JAX-RS 2.0 API的内容,并涉及该规范的一个非常有趣的方面: 动态功能以及它们的有用性。 传统上,当配置和部署JAX-RS 2.0 API(使用Application类,从servlet引导或通过RuntimeDelega…

ionic2 安装与cordova打包

1.安装: cnpm install -g cordova ionic ionic start name cd name cnpm install 2、环境配置: http://www.cnblogs.com/changyaoself/p/6544082.html 这里是具体配置。 测试环境: cordova platform list 如下才可以: 3、添加…

mysql vacuum_PostgreSQL DBA快速入门(四) - 体系架构

PostgreSQL在开源关系型数据库市场是最先进的数据库。他的第一个版本在1989年发布,从那时开始,他得到了很多扩展。根据db-enginers上的排名情况,PostgreSQL目前在数据库领域排名第四。 本篇博客,我们来讨论一下PostgreSQL的内部架…

(ab)使用Java 8 FunctionalInterfaces作为本地方法

如果您使用Scala或Ceylon甚至JavaScript等更高级的语言进行编程,则“嵌套函数”或“本地函数”是您非常常见的习惯用法。 例如,您将编写诸如fibonacci函数之类的东西: def f() {def g() "a string!"g() "– says g" …

mysql的配置实现远程访问_MySQL 远程连接配置的正确实现 | 学步园

此文章主要向大家描述的是MySQL远程连接配置的实际操作步骤,以及在其实际操作中值得我们大家注意的相关事项的描述, 以下就是具体方案的描述,希望在你今后的学习中会有所帮助。MySQL远程配置GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED…

oracle 用户账户被锁处理

一、以管理员身份登录 SQL> conn sys/sys as sysdba; (分号是必须的但是我是以system登录的所在这不应该写conn sys/sys as sysdba应该写conn system/orcl as sysdba;)Connected. 二、解锁被锁用户SQL> alter user scott account unlock;User alte…

总结mysql的基础语法_mysql 基础sql语法总结 (二)DML

二、DML(增、删、改)1)插入数据第一种写法:INSERT INTO 表名 (列名1,列名2,,......)VALUES(列值1,列值2,......)第二种写法:INSERT INTO 表名 VALUES(列值1,列值2,......…

提高团队协作效率

提高团队协作效率 分工合理,责任明确 团队是由个人组成的,团队中的个人往往经历不同、背景不同、性格有差异、水平有高低。在团队形成后、正式开工前,首先应该进行合理分工,要结合每个 人的特点和爱好,充分发挥出每个人…

mysql远程访问时间长无反应_远程MySQL访问需要很长时间

Running a MySQL query on a local database takes only about 20-30ms but running the same query through a remote connection(internet) takes 500ms. Is this normal? If not what could be the possible reason for such delay?This is a wireshark time extract for …

c# 利用AForge和百度AI开发实时人脸识别

baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能 人脸实时检测识别功能 思路是利用AForge打开摄像头,通过摄像头获取到的图像…

Java中Array和ArrayList之间的9个区别

array和ArrayList都是Java中两个重要的数据结构,在Java程序中经常使用。 即使ArrayList在内部由数组支持,了解Java中的数组和ArrayList之间的差异对于成为一名优秀的Java开发人员也至关重要。 如果您知道相似点和不同点,则可以明智地决定何时…

python读二进制文件遍历_使用python反向读取二进制文件

从这个问题中我可以看出代码中有几点需要改进。首先,while循环在Python中很少使用,因为使用for循环或使用一些内置函数几乎总是有更好的方法来表达相同的内容。在我想代码纯粹是为了培训目的。否则,我会首先问真正的目标是什么(因为知道了问题…

vue 在已有的购买列表中(数据库返回的数据)修改商品数量

连续加班一个月 连续通宵三天 到最后还是少了一个功能 心碎 简介:一个生成好的商品列表(数据库返回的数据) 首先拿到我们需要渲染的数组 在data中定义 我是在测试的时候 直接写了两条数据 下面开始点击删除 点击添加是一样的代码 只不过加号…

python饼状图教程_Python数据可视化:饼状图的实例讲解

使用python实现论文里面的饼状图:原图:python代码实现:# # 饼状图# plot.figure(figsize(8,8))labels [uCanteen, uSupermarket, uDorm, uOthers]sizes [73, 21, 4, 2]colors [red, yellow, blue, green]explode (0.05, 0, 0, 0)patches,…

小看--单例设计模式

(一)单例设计描述 只要了解过设计模式的同学都会知道:单例设计模式,大家都知道单例设计模式是一种创建行的设计模式。既然是创建型,那么先来讲讲,对象的创建的过程吧。 --静态成员:静态成员在程…

动态方法注入 grails_Grails动态下拉菜单

动态方法注入 grails最近,我有一个UI要求,客户希望从两个单独的下拉列表中选择值。 第一个下拉列表的值实质上过滤了第二个下拉列表的值。 鉴于我们支持的财务项目对UI的要求并不严格,因此我不得不进行一些初步的学习和试验,以实现…

selenium原理python_从python角度解析selenium原理

1、selenium工作流程2、selenium工作原理(1)客户端和服务端之间实际是通过http协议进行通信,服务端的接口文档可参考:https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidelement(2)客户端按照服务端接口要求传入请求方式、…

Jmeter(二)Jmeter目录介绍

看过许多有关Jmeter的博客,算得上的收获颇丰;不过最牛逼的博客还是“官方文档”,官方文档是ApacheJmeter自己对自己产品的说明,论起对自己产品的理解程度,那肯定是自己嘛。。。因此推荐大家从Jmeter的官方文档开始学习…