rsync 同步优化_可以优化同步吗?

rsync 同步优化

总览

有一个常见的误解,因为JIT很智能,并且可以消除对象的同步,而该对象仅存在于不影响性能的方法中。

比较StringBuffer和StringBuilder的测试

这两个类基本上做同样的事情,除了一个是同步的(StringBuffer)而另一个不是。 它也是一个类,通常在一种方法中用于构建String。 以下测试试图确定彼此之间可以产生多少差异。

static String dontOptimiseAway = null;
static String[] words = new String[100000];public static void main(String... args) {for (int i = 0; i < words.length; i++)words[i] = Integer.toString(i);for (int i = 0; i < 10; i++) {dontOptimiseAway = testStringBuffer();dontOptimiseAway = testStringBuilder();}
}private static String testStringBuffer() {long start = System.nanoTime();StringBuffer sb = new StringBuffer();for (String word : words) {sb.append(word).append(',');}String s = sb.substring(0, sb.length() - 1);long time = System.nanoTime() - start;System.out.printf("StringBuffer: took %d ns per word%n", time / words.length);return s;
}private static String testStringBuilder() {long start = System.nanoTime();StringBuilder sb = new StringBuilder();for (String word : words) {sb.append(word).append(',');}String s = sb.substring(0, sb.length() - 1);long time = System.nanoTime() - start;System.out.printf("StringBuilder: took %d ns per word%n", time / words.length);return s;
}

最后使用Java 7 update 10使用-XX:+DoEscapeAnalysis打印

StringBuffer: took 69 ns per word
StringBuilder: took 32 ns per word
StringBuffer: took 88 ns per word
StringBuilder: took 26 ns per word
StringBuffer: took 62 ns per word
StringBuilder: took 25 ns per word

用一百万个单词进行测试不会显着改变结果。

结论

  • 尽管使用同步的代价很小,但是它是可以衡量的,并且如果可以使用StringBuilder,则它是首选的,因为它在Javadocs中针对此类的状态进行了说明。
  • 从理论上讲,可以优化同步,但是即使在简单情况下也是如此。

参考: 可以优化同步吗? 来自我们的JCG合作伙伴 Peter Lawrey,来自Vanilla Java博客。

翻译自: https://www.javacodegeeks.com/2012/12/can-synchronization-be-optimised-away.html

rsync 同步优化

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

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

相关文章

sudoers 用户权限配置_使用sudo让普通用户获取root用户的权限

sudo 是 Linux 系统管理指令&#xff0c;是允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具&#xff0c;如 halt&#xff0c;reboot&#xff0c;su 等等。这样不仅减少了 root 用户的登录 和管理时间&#xff0c;同样也提高了安全性。sudo不是对 shell 的一个…

Spring Boot –使用执行器端点在运行时配置日志级别

从Spring Boot 1.5开始&#xff0c;新的loggers器执行器端点允许在运行时查看和更改应用程序记录级别。 将spring-boot-actuator添加到您的项目 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator&…

Python学习教程:Python增强赋值及共享引用注意事项

Python学习教程&#xff1a;Python增强赋值及共享引用注意事项 概述 Python中的增强赋值是从C语言中借鉴出来的&#xff0c;所以这些格式的用法大多和C一致&#xff0c;本身就是对表达式的简写&#xff0c;即二元表达式和赋值语句的结合&#xff0c;比如a b 和a a b 就是一致…

python math.sinh_Python numpy.sinh()用法及代码示例

numpy.sinh(x [&#xff0c;out]) ufuncsin)&#xff1a;此数学函数可帮助用户计算所有x(作为数组元素)的双曲正弦值。等效于1/2 *(np.exp(x)-np.exp(-x))或-1j * np.sin(1j * x)。参数&#xff1a;array :[数组]元素以弧度为单位。2pi弧度 36o度返回&#xff1a;对于所有x即数…

中国大学MOOC-陈越、何钦铭-数据结构-2019春期末考试(题目+部分解答)

欢迎评论&#xff08;指正或是询问都可&#xff09;&#xff0c;谢谢大家 一、判断题 思路很正常的题目。 1-4反例&#xff1a;4个顶点只用3条边就可以做到全连通。所以边数可能等于顶点个数减一。错误。 二、选择题 2-8需要细心的做一下双旋操作&#xff0c; 2-12 C 设数字 {…

分析java 线程占用内存_Java线程:保留的内存分析

分析java 线程占用内存本文将为您提供一个教程&#xff0c;使您可以确定活动应用程序Java线程中保留了多少Java堆空间 。 将提供来自Oracle Weblogic 10.0生产环境的真实案例研究&#xff0c;以使您更好地理解分析过程。 我们还将尝试证明过多的垃圾回收或Java堆空间的内存占用…

图像傅里叶变换

1傅里叶变换物理意义 图像的频率是表征图像中灰度变化剧烈程度的指标&#xff0c;是灰度在平面空间上的梯度。如&#xff1a;大面积的沙漠在图像中是一片灰度变化缓慢的区域&#xff0c;对应的频率值很低&#xff1b;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧…

python获取涨停股票_今日股市光大证券

一、查询股票账户的总盈亏的方法如下&#xff1a;1、查询你的银行银证转账记录&#xff0c;用转进的资金总额减去转出的资金总额&#xff0c;再和你现在的证券账户市值比较&#xff0c;即可得出盈亏。2、联系你的开户券商&#xff0c;通过柜面进行轧差查询资金进出情况&#xf…

MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式

MVC web api 返回JSON的几种方式&#xff0c;Newtonsoft.Json序列化日期时间去T的几种方式 2015-01-18 00:11 https://www.muhanxue.com/essays/2015/01/8623699.html MVC web api 返回JSON的几种方式 1、在 WebApiConfig的 Register中加入以下代码 config.Formatters.JsonForm…

从微服务到分布式系统-Java开发人员生存指南

感觉像是对微服务的炒作正在慢慢地落到实处&#xff0c;并且我们的行业开始意识到&#xff0c;仅通过在现有组件之上公开一些HTTP接口就无法轻松创建根据微服务背后的体系结构范式的系统。 我们似乎确实同意必须进行服务优化的基础架构&#xff0c;文化和组织变革&#xff0c;最…

timespan怎么比较大小_钻石吊坠回收怎么选择大小?

钻石吊坠也是比较常见的钻饰&#xff0c;和钻戒不同的是&#xff0c;钻石吊坠并不是必须要买的珠宝&#xff0c;但作为点缀全身的装饰&#xff0c;钻石吊坠的大小问题也让大家很是关注&#xff0c;钻石吊坠回收怎么选择大小&#xff1f;一般我们会把钻石从10分算起(10分以下的钻…

图像边缘算子

&#xff08;1&#xff09;常见边缘检测算子&#xff1a;Roberts 、Sobel 、Prewitt、Laplacian、Log/Marr、Canny、Kirsch、Nevitia &#xff08;2&#xff09; 其中一阶边缘算子&#xff1a;Roberts 、Sobel 、Prewitt、Kirsch。 其中二阶边缘算子&#xff1a;Laplacian、Log…

python使用telnet远程连接linux系统读取信息_Linux服务笔记之一:Telnet 远程登录

最近&#xff0c;在学习Linux服务器中的搭建&#xff0c;感觉上非常强大。下面&#xff0c;我写下在Linux下搭建Telnet服务来远程管理设备&#xff0d;&#xff0d;这也是一种古老的远程管理方 式这一。其中&#xff0c;Telnet服务也是基于C/S模式的。客户端用Telnet远程登录协…

团队作业(五):冲刺总结

团队作业&#xff08;五&#xff09;&#xff1a;冲刺总结 转载于:https://www.cnblogs.com/20175226wpy/p/10964911.html

matlab 判断对象的数据类型isa()

K isa(obj, class_name) 判断obj是否为class_name类型。如果是&#xff0c;返回逻辑1&#xff08;真&#xff09;&#xff1b;如果不是&#xff0c;返回逻辑0&#xff08;假&#xff09;。 参量obj是一个MATLAB对象或者Java对象。参量class_name是MATLAB&#xff08;预定义的…

使用Oracle Data Integrator(和Kafka / MapR流)完善Lambda体系结构

“ Lambda体系结构是一种数据处理体系结构&#xff0c;旨在通过利用批处理和流处理方法来处理大量数据。 这种体系结构方法试图通过使用批处理提供批处理数据的全面而准确的视图&#xff0c;同时使用实时流处理提供在线数据的视图来平衡延迟 &#xff0c; 吞吐量和容错能力 。 …

matlab regionprops区域属性信息

stats regionprops(L,properties) 返回的stats为一个结构体struct 测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域&#xff0c;例如&#xff1a;L中等于整数1的元素对应区域1&#xff1b;L中等于整数2的元素对应区域2&#xff1b;以此类推。…

python3虚拟环境使用教程_python虚拟环境完美部署教程

一、前言预处理建议仔细看完本文章之后在进行操作&#xff0c;避免失误&#xff0c;本环境可以用于生产环境&#xff0c;有利于生产环境python之间的环境隔离&#xff0c;互相不会产生环境冲突&#xff1b;pyenv和pyenv-virtualenv可以完美结合使用&#xff0c;具体使用情况看项…

yandexbot ip列表整理做俄罗斯市场的站长可以关注一下

这段时间ytkah在负责一个客户的网站&#xff0c;主要做俄罗斯市场&#xff0c;当然是要研究Yandex了&#xff0c;首先是要知道yandexbot的ip有哪些&#xff0c;本文通过分析这个站从2018.12.02到2019.05.21这段时间产生的网站log日志得出的结果&#xff0c;log日志文件1.3G&…

为什么闲鱼不能搜索python_Python 分析后告诉你闲鱼上哪些商品抢手?

前言文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者&#xff1a;【Airpython】PS&#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun准 备 工 作在编写代码…