草庐IT

Performance

全部标签

Java - 寻找比 PriorityQueue 更快的东西

我正在对大量数据使用java。[我尽量简化问题]实际上我有一个小类(Element),其中包含一个intKEY和一个doubleWEIGHT(带有getters和setters)。我从一个文件中读取了很多这样的对象,我必须得到最好的(最重的)M个对象。实际上,我正在使用带有比较器的PriorityQueue来比较两个元素,它可以工作,但速度太慢。你知道(我知道你知道)有什么更快的方法吗?谢谢 最佳答案 基于堆的优先队列是解决这个问题的一个很好的数据结构。正如健全性检查一样,验证您是否正确使用了队列。如果您想要最高权重的项目,请使用m

java - 遍历所有字节值 -128-127 而无需在 Java 中强制转换

我需要遍历所有字节值(-128到127,包括在内)。我可以使用int迭代器,但我每次都必须转换为byte.使用byte迭代器有我无法测试b的问题因为它会溢出。我想到了使用while循环并在递增之前进行测试,这是迄今为止我最好的解决方案。有没有更好的方法? 最佳答案 Java字节是有符号的,所以它们的值是-128到127。无论如何,你不应该担心类型转换和额外的检查,因为它们很容易优化掉。事实上,在JVM级别,没有字节变量这样的东西。无论如何,它都被视为一个int。 关于java-遍历所有字

java - 如何加速 Eclipse Juno?

更新到EclipseJuno后,我发现它在我更改View时间歇性地卡住。它也变得缓慢。调整堆大小对性能没有任何积极影响。如何提高Eclipse的性能? 最佳答案 更新:EclipseJuno的新性能版本(SP2)已经发布。因此,如果您的EclipseJuno(4.2)太慢或间歇性崩溃,可以将其更新到SP2。只需转到“帮助”->“检查更新”附言请在执行此操作之前备份您的Eclipse文件夹。原始答案:这是EclipseJuno中的一个已知问题,为此发布了一个补丁。安装它可以解决性能问题-http://wiki.eclipse.org/

java - 成为绩效顾问的主要技能是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion如果我想成为Java应用程序和系统的性能顾问,我需要具备哪些主要技能?长期使用Java本身使用分析器(或堆叠照片)数据库知识(避免/检测常见的性能错误:索引等)缓存库Java并发性你同意这些的重要性吗?您还会添加什么?根据答案更新:额外技能:垃圾收集和调优高效Java代码设计(高层次愿景)界面技术(JavaScript、DOM、CSS、Swing、SWT)网络理解(也用于Ajax)算法,B

java - 通过 Java 中的标准输出更快的输出?

在在线评委编程竞赛问题中,我需要通过标准输出在1秒内输出多达50,000行(除了读取多达200,000对整数,我使用缓冲区)。我的逻辑似乎是正确的,但我的提交总是因为超过1秒的运行时间而被拒绝。我精简了我的代码逻辑,只输出一个常量字符串,但它仍然超过了时间限制。是否有比对每一行输出使用System.out.println(Strings)更快的输出方式? 最佳答案 我会像这样使用单个System.out.print调用(或至少通过基准测试发现有意义的调用):Stringstr="line1\nline2\nline3\n...";S

Java - LinkedList - 性能随着其中不同类的数量而降低

以下代码测量了从接口(interface)Handler调用方法handle(Objecto)100次所花费的时间(是的,这是糟糕的质量分析):packagetest;importjava.util.LinkedList;publicclassTest{staticinti=0;privateinterfaceHandler{publicvoidhandle(Objecto);}privatestaticclassSuperHandlerimplementsHandler{publicvoidhandle(Objecto){i+=1;}}privatestaticclassNoSupe

java - 为并行处理数据选择最佳线程数

假设我有一项处理100万个句子的任务。对于每个句子,我都需要对其进行处理,而不管它们以何种特定顺序处理。在我的Java程序中,我有一组futures从我的主要工作block中分离出来,带有一个可调用的,它定义了要在一大块句子上完成的工作单元,我正在寻找一种优化数量的方法我分配的线程处理大块的句子,然后重新组合每个线程的所有结果。在我看到yield递减之前,我可以使用的最大线程数是多少才能在速度方面提供最佳性能?另外,是什么导致分配的线程越多(即一次可以完成更多线程)的逻辑不正确? 最佳答案 在实践中,可能很难找到最佳线程数,甚至每次

java - 如何使用 Hibernate 尽可能快地插入数据

我读取文件并从中创建一个对象并存储到postgresql数据库。我的文件有100,000个文档,我从一个文件中读取并拆分它,最后存储到数据库中。我无法创建List并将所有文档存储在List中因为我的内存很小。我读取和写入数据库的代码如下。但MyJVMHeap已满而无法继续存储更多文件。如何高效地读取文件并存储到数据库。publicvoidreadFile(){StringBuilderwholeDocument=newStringBuilder();try{bufferedReader=newBufferedReader(newFileReader(files));Stringline

java - 判断一手扑克牌是否顺子的函数?

在家庭作业中,我得到了一个Card类,该类列举了Rank和Suit的类型。我需要比较两手扑克牌(每手牌是一个包含5张牌的ArrayList)并决定获胜者。isStraight()函数真的很困扰我,因为我必须在A之后重新开始计数。例如,皇后、国王、王牌、二、三仍然被认为是顺子。编写此功能的最佳方式是什么?如果有帮助的话,这里是Rank/Suit枚举类型代码。publicenumRank{TWO(2),THREE(3),FOUR(4),FIVE(5),SIX(6),SEVEN(7),EIGHT(8),NINE(9),TEN(10),JACK(11),QUEEN(12),KING(13),A

java - 监控java线程执行的工具

我有一个在Tomcat服务器(Linux)上运行的JavaWeb应用程序。在生产环境中,我面临一些性能问题。以随机间隔运行tomcat的jsvc进程开始以90-100%的CPU运行。我无法找出此事件的触发因素。服务器是四核系统。内存消耗不代表任何异常。我如何监控应用程序中的哪个线程(应用程序堆栈跟踪)导致了问题?我正在检查jconsole和PSIProbe,但两者都没有给出应用程序内部哪个线程导致CPU使用率异常的任何详细信息。 最佳答案 一个相对简单的方法来做到这一点(这可能适用于您的情况也可能不适用-取决于行为发生的时间):当您