草庐IT

MySQL性能优化

全部标签

java - Java JIT 是否确定性地编译字节码——在同一台机器上每次运行都进行相同的优化?

JavaJIT是否在同一台机器上每次运行时都使用相同的优化来编译字节码?它是否考虑了给定时刻的CPU使用率等动态因素,还是每次都会进行相同的优化而不考虑临时因素? 最佳答案 不,优化是不确定的。即使您运行完全相同的单线程、完全确定性程序,JIT用来确定要优化哪些方法的采样器也可以选择不同的集合。另一件可以改变生成的机器代码的事情是代码引用的某些常量的实际内存位置。JIT可以发出直接访问这些内存位置的机器指令,从而导致不同遍的机器代码之间存在额外差异。研究人员使用JikesRVM通过使用名为CompilerReplay的功能解决了他们

TreeView 上 TreeItems 的 JavaFX 优化异步延迟加载

我有一个应用程序,其中有一个TreeView,其中有TreeItems持有大量叶子TreeItem。在TreeView中拥有大量的TreeItem会显着损害应用程序的性能,为了避免这种情况,我将做的是一次只允许展开一个非叶TreeItem,并且一旦TreeItem被折叠,我将清除它的子项,并在需要时异步加载它们(当用户展开TreeItem时)。奇怪的问题是,在下面的这个测试中,当我第一次点击treeitem上的展开箭头时,子项加载正常,如果我折叠它(这将清除子项)并再次展开它,有时它会工作和其他程序开始占用30%的CPU数分钟,然后恢复运行。更奇怪的是,如果我双击TreeItem将其展

java - 比较 Spark 中的两个数据帧(性能)

我需要比较我的spark应用程序中的两个数据帧。我浏览了以下帖子。HowtoobtainthedifferencebetweentwoDataFrames?但是,我不明白为什么最佳答案中的方法df1.unionAll(df2).except(df1.intersect(df2))比问题中的那个好df1.except(df2).union(df2.except(df1))谁能解释一下?据我了解,后者适用于两个较小的数据集,而前者适用于大型数据集。是因为后者将不同作为联合的一部分吗?即使那样,如果两个数据框有相同记录的可能性更大,那么在后一种情况下我们处理的是一个小数据集。

java - 无法获取 logback 和 mysql 连接

我像这样使用logback和mysql:com.mysql.jdbc.Driver${jdbc.url}${jdbc.username}${jdbc.password}但是我得到:11:51:45,851|-WARNinch.qos.logback.core.db.DataSourceConnectionSource@4c1be833-Couldnotgetaconnectiontodiscoverthedialecttouse.java.sql.SQLException:Connectionscouldnotbeacquiredfromtheunderlyingdatabase!at

java - hibernate 性能问题,坚持一个接一个还是批量?

我有一个约6GB的文本文件,我需要对其进行解析并稍后保存。通过“解析”,我从文件中读取一行(通常为2000个字符),从该行创建一个Car-object,然后我坚持它。我正在使用生产者消费者模式来解析和持久化,我想知道一次持久化一个对象(出于性能原因)或在一次提交中持久化1000个(或任何其他数量)对象是否有任何区别?目前,我需要>2小时来持久化所有内容(300万行),这对我来说看起来时间太多了(或者我可能是错的)。目前我正在这样做:publicvoidpersistCar(Carcar)throwsException{try{carDAO.beginTransaction();//ge

java - C# 结构内存优化?

我参加了试用期面试(?我不确定是不是这个词)面试官让我告诉他结构和类之间的区别是什么。所以我告诉他我知道的一切以及我在msdn上看到的一切。那家伙说“还不够”,我一点头绪都没有。于是他说:struct是优化过的,所以如果有integer和float,有一些位相同,那么它会节省这个空间,所以structwithint=0和float=0是int=int.MAX的一半大小,float=float.MIN.好的。所以我当时想-没听说过。但是,在面试之后我在考虑它,但它对我来说并没有什么意义。这意味着,当我们更改其中某个变量的值时,结构大小会有所不同。而且在内存中也不可能真的在同一个地方,万一

java - 内在函数和内联对 Lambda 性能的影响?

我用过这个基准java8-lambda-performance-test运行它时我做了以下事情:1.禁用内在用法2.禁用内联3.禁止编译模式我发现禁用前两个优化对结果没有影响。这很奇怪,而且在使用和打印内在运行基准测试时,我没有发现对内在compiledLambdaForm的任何调用由于那里大量使用数学内在函数_min,_pow...我原以为禁用内在函数会降低性能 最佳答案 您没有注意到预期性能效果的原因是poorlywrittenbenchmark.我使用JMH重写了基准测试事情终于做好了。packagelambdademo;im

java - ObjectMapper - 线程安全和性能的最佳实践

总结我想在下面描述的用例的上下文中找到在线程安全和性能方面使用ObjectMapper和/或ObjectReader的最佳实践。背景我有一个辅助类(Json.java),其中方法toObject()使用ObjectMapper从json转换字符串到给定(json可映射)类的对象。问题/疑问我读到,ObjectReader通常被推荐为完全线程安全的,但我主要看到它处于非泛型上下文中,其中预定义了要读取的类。在这种情况下,您认为在线程安全和性能方面的最佳实践是什么?在代码中,我提出了三个可以作为起点的建议。我已尝试查看jackson-databind的源代码和文档,但我的Java理论技能还

java - 关于 Java 文件加密性能的建议

我正在做一些文件加密相关的工作。我能够加密/解密文件,但面临一个主要的性能问题。当我简单地读/写一个700MB大小的视频文件时,我的代码执行速度约为27-28MB/s。但是当我执行加密时(我目前正在使用PBEWithMD5AndDES,稍后我会更改)代码显示速度为9MB/s。请告知我在哪里可以改进。代码片段:intc=0,BUF_SIZE=8192;byte[]b=newbyte[BUF_SIZE];FileInputStreamfis;DataInputStreamdis;FileOutputStreamfos;DataOutputStreamdos;CipherOutputStre

java - 如何提高 Java 中的 Hibernate 性能?

我有数以千计的记录需要通过一次用户点击来检索。目前它给我的结果很慢,我必须等待很长时间。有没有一种方法可以改进使用hibernate检索这些结果?我有一个案例,其中有一个选择查询的方法将每分钟运行一次。这是Hibernate给我缓慢结果的地方。我将Hibernate与MySQL结合使用。 最佳答案 常见的做法是启用二级缓存和查询缓存。您的数据将从内存中读取,而不是从数据库中读取。关于它的好文章here其他有用的东西:1索引-如果有where和ordering-你必须为你正在搜索/排序的字段建立索引-这可以将搜索速度提高10倍2非规范