草庐IT

Performance

全部标签

java - 从 Java 插入到 SQL Server 时,我可以获得类似 "BULK INSERT"的速度吗?

在寻找从Java获取数据到SQLServer的最快方法的过程中,我注意到我能想到的最快的Java方法仍然比使用BULKINSERT慢12倍。我的数据是从Java中生成的,而BULKINSERT只支持从文本文件中读取数据,因此除非我将数据输出到临时文本文件,否则不能使用BULKINSERT。反过来,这当然会对性能造成巨大影响。从Java插入时,插入速度约为每秒2500行。甚至当我在for循环之后和executeBatch之前测量时间时。因此,在内存中“创建”数据不是瓶颈。使用BATCHINSERT插入时,插入速度约为每秒30000行。这两个测试都是在服务器上完成的。所以网络也不是瓶颈。关

java - JVM 垃圾收集 - 跟踪年轻一代中的 Activity 对象

在收集年轻代内存时,JVM收集器仅扫描属于年轻代的那些根对象(堆中可直接从根集中访问的对象),并使用写屏障支持的卡表/memset来确定区域老一代的对象可能包含对年轻一代对象的引用。我的问题是,如果年轻收集器确定年轻代中的特定对象只有来自老年代对象的单个外部引用,它如何知道老年代对象本身不是垃圾,因此使年轻代对象“存活”并且不符合收集条件吗?例如,可能有一条从根集直接到老年代对象的路径,而老年代对象又引用了所说的年轻一代对象。年轻收集器通常认为这个年轻代对象是活的,还是在决定忽略/收集它之前如何确定指向它的老年代对象是否是活的/垃圾? 最佳答案

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

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

java - 数据结构 : Which should I use for these conditions?

这应该不是一个困难的问题,但我只是希望在我继续之前有人能回答它。我只需要根据这些预期的Activity来决定使用什么数据结构:需要经常按排序顺序进行迭代(从头开始)。需要从排序View中删除/恢复任意元素。以后我会经常对数据进行排序并使用多个排序View。稍后我会经常更改元素在其排序View中的位置。顺便说一句,这是用Java编写的。我最好的猜测是,我要么滚动一些自定义链接哈希集(以按排序顺序排列链接),要么可能只使用树集。但我还不能完全确定。推荐?编辑:我想由于任意删除/恢复,我应该坚持使用树集,对吧?其实不一定。嗯…… 最佳答案

java - 如何加速这个 Python 代码?

我有以下微型Python方法,它到目前为止是性能热点(根据我的分析器,>95%的执行时间花在这里)一个更大的程序:deftopScore(self,seq):ret=-1e9999logProbs=self.logProbs#saveindirectionl=len(logProbs)foriinxrange(len(seq)-l+1):score=0.0forjinxrange(l):score+=logProbs[j][seq[j+i]]ret=max(ret,score)returnret代码正在Python的Jython实现中运行,而不是CPython,如果这很重要的话。seq

java - 使用 >>、>、>|、||、|<、<、<< 进行可视化调试

使用标准调试器调试性能问题几乎没有希望,因为细节级别太高。其他方法是使用分析器,但它们很少给我有用的信息,尤其是当涉及到GUI和后台线程时,因为我永远不知道用户是否真的在等待计算机。另一种方法是简单地使用Control+C并查看它在代码中的何处停止。我真正想要的是将快进、播放、暂停和倒带功能与代码的一些视觉表现相结合。这意味着我可以将代码设置为快进运行,直到我将GUI导航到关键点。然后我将代码设置为在慢速模式下运行,同时我得到一些视觉表现,哪些行正在执行(可能是代码的某种缩小View)。例如,我可以将执行速度设置为0.0001x。我相信我会通过这种方式非常清楚地了解问题是出在特定模块内

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 - Maven clean install 等于 mvn clean 和 mvn install 之后?

我有一个多模块Maven项目。发现:mvnclean-需要3分钟之后mvninstall-需要18分钟。所以我想mvncleaninstall应该需要21分钟,但它需要将近30分钟!也是这样吗:mvncleaninstall和mvncleanmvninstall?谢谢。 最佳答案 AFAIK,是的,虽然我对启动/解决/等有点惊讶。花费那么很多时间。操作系统缓存、JVM启动/优化等都会在差异中发挥作用。 关于java-Mavencleaninstall等于mvnclean和mvninsta

java - 测量 Spring RestTemplate HTTP 请求时间

我想测量RestTemplate.getForObject调用的HTTPGET请求的时间,而不是解析响应所需的时间。所以正是远程HTTP调用需要的时间。我已经尝试设置ClientHttpRequestInterceptor但我认为这不是正确的方法,因为时间似乎不对:publicclassPerfRequestSyncInterceptorimplementsClientHttpRequestInterceptor{privateLoggerlog=Logger.getLogger(this.getClass());@OverridepublicClientHttpResponseint

java - 使用 MTJ/Netlib( native )的缓慢矩阵乘法性能

我需要将大小为5000x5000的大矩阵乘以20000x20000。我在寻找具有稀疏矩阵但可以进行快速乘法的库时遇到问题。首先,我阅读了上一个关于Java矩阵库性能的问题(PerformanceofJavamatrixmathlibraries?)。基于那里的最佳答案,我决定使用JBLAS,因为它是最快的之一。在我的例子中,乘以5000x5000矩阵大约需要50秒左右,这比Matlab慢很多,但仍然可以接受。问题是矩阵可能非常大(高达20kx20k或更多),但它们通常是稀疏的。矩阵中只有30%的元素是非零元素。JBLAS不提供任何稀疏矩阵实现,因此存储大型密集矩阵所需的内存占用量可能会