草庐IT

数值优化

全部标签

java - 数值提升是否适用于 Java 中的常量?

这个问题在这里已经有了答案:WhycannotIaddtwobytesandgetanintandIcanaddtwofinalbytesgetabyte?(3个答案)WhydoesJavarequireanexplicitcastonafinalvariableifitwascopiedfromanarray?(4个答案)Primitivetype'short'-castinginJava(11个答案)Javachartobytecasting(3个答案)关闭4年前。§5.1.2和§5.6.2不要提及常量的数字提升和扩大是如何工作的。以下给出了预期的错误:shorta=2;short

java - 如何为长生命周期对象优化 Java gc

我的Java应用程序维护着一个可以增长到10GB的内部缓存。过期策略设置为30分钟或达到内存阈值时(我正在使用本地ehcache)。很明显,在30分钟后,所有缓存的对象都将在旧的gen中,并且需要完整的gc来收集它们。至于现在停止世界暂停可以达到6秒,我想减少它。平均对象大小为500k,但最多可达1兆,因此我们谈论的是10000-20000个缓存对象(实际上是字节数组)。GC优化的最佳策略是什么?我知道我可以脱离堆,但这是最后的解决方案。谢谢! 最佳答案 10GB缓存不是你应该在堆中做的事情。使用ByteBuffers用于缓存。对象

java - 优化 SSE 代码

我目前正在为需要一些性能改进的Java应用程序开发C模块(请参阅Improvingperformanceofnetworkcoding-encoding了解背景信息)。我已经尝试使用SSE-intrinsics优化代码,它的执行速度比Java版本(~20%)快一些。然而,它仍然不够快。不幸的是,我在优化C代码方面的经验有些有限。因此,我很想获得一些关于如何改进当前实现的想法。构成热点的内部循环如下所示:for(i=0;i 最佳答案 即使不查看程序集,我也能立即看出瓶颈来自4元素收集内存访问和_mm_set_epi32打包操作。在内部

java - 由于数值精度错误而违反 compareTo 传递契约的影响

我有一些数字要比较。它们代表通过不同空间的路径长度。对我来说不幸的是,一些不精确导致了错误的比较。例如,在注意到错误的效果后,我发现我在进行这样的比较:a=384.527100541296b=384.52710054129614//Notethetrailing14为了我的目的,a和b应该是相等的。我注意到guava有一个用于double的fuzzyCompare()方法,它似乎做了我想做的,忽略了一些这种精度:privatestaticfinaldoubleCOMPARISON_PRECISION=1e-10;privatestaticfinalComparatorfuzzyComp

java - 优化tomcat启动时间

我的应用程序非常大,例如在web-inf/lib中包含310个jar,总共100Mb。启动服务器,下面这一步需要13s:Sep16,20141:05:33PMorg.apache.catalina.startup.HostConfigdeployDirectoryINFO:DeployingwebapplicationdirectoryC:\apache-tomcat-7.0.47\webapps\ROOT应用程序依赖于网络片段和注释才能正常启动。我尝试了以下方法来跳过13秒的扫描时间:使用属性logEffectiveWebXml="true"修改conf/context.xmlcat

java - 最终静态与最终非静态字段和 JVM 优化

我很好奇JVM如何处理staticfinal字段。我看到一个类似的问题here但这不是我要找的。让我们考虑这样的例子:publicclassTestClassX{publicfinalintCODE_A=132;publicfinalintCODE_B=948;publicfinalintCODE_C=288;//someothercode}publicclassTestClassY{publicstaticfinalintCODE_A=132;publicstaticfinalintCODE_B=948;publicstaticfinalintCODE_C=288;//someoth

java - 如何在 Perl 中设置文件读取缓冲区大小以针对大文件对其进行优化?

我知道Java和Perl在读取文件时都非常努力地尝试找到一个适合所有默认缓冲区大小的统一尺寸,但我发现他们的选择越来越过时,并且在更改默认选择时遇到问题它涉及到Perl。对于Perl,我相信它使用8K默认缓冲区,类似于Java的选择,我无法使用perldoc网站搜索引擎(真正的Google)找到关于如何增加默认文件输入缓冲区大小的引用,比如64K。从上面的链接中,显示8K缓冲区如何无法缩放:Iflinestypicallyhaveabout60characterseach,thenthe10,000-linefilehasabout610,000charactersinit.Readi

自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、自适应粒子群优化二、使用步骤代码总结前言提示:这里可以添加本文要记录的大概内容:下面是一个关于自适应粒子群优化(AdaptiveParticleSwarmOptimization,APSO)的博客,希望可以帮助您。提示:以下是本篇文章正文内容,下面案例可供参考一、自适应粒子群优化自适应粒子群优化是一种优化算法,它是粒子群优化(ParticleSwarmOptimization,PSO)的一种变体。与传统的PSO不同,APSO使用自适应策略来调整算法的参数,以提高算法的性能和收敛速度。APSO的主要思想是根据群体的收

Python实现人工神经网络回归模型(MLPRegressor算法)并基于网格搜索(GridSearchCV)进行优化项目实战

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景经济广告是指以营利为目的的广告,通常是商业广告,它是为推销商品或提供服务,以付费方式通过广告媒体向消费者或用户传播商品或服务信息的手段。商品广告就是这样的经济广告。为促进产品的销售,厂商经常会通过多个渠道投放广告。本项目将根据某公司在电视、广播和报纸上的广告投放数据预测广告收益,作为公司制定广告策略的重要参考依据。本项目通过通过人工神经网络回归模型来进行广告投放数据的预测,并通过网格搜索算法进行模型的调优,使模型达到最优的效果。2.数据获取本次建模数据来源于网络(

java微优化: combine set of boolean instance variables to bit vector based on int

我们有一个包含很多实例的类,遇到了内存问题。因此,我们尽量减少这个类的内存需求。一种想法如下。该类有许多boolean实例变量,在天真的实现中,每个实例变量都会占用一个词。可以考虑将它们组合成一个存储在int中的微型位vector,这样它们的组合内存需求就是一个字。但我怀疑JavaVM无论如何都会进行这种优化,因此手动执行它不会获得任何额外的节省。对吧? 最佳答案 boolean值使用1个字节的内存(在热点上)。您可以使用替代方案:一个BitSet:每个boolean值大约使用1位+类本身的开销、对BitSet的引用、对BitSet