[英]What is the best, average and worst case for this specific implementation of Quick Sort?
[英]Is there a worst case implementation of the JVM?
您可以嘗試使用Terracotta來聚類您的程序。 對於不正確的同步(即使集群中只有一個節點也會變得明顯),這是非常不可原諒的。 這是一個很好的問題:我經常想要這種能力 - 我很驚訝標准JRE -XXJMMExtreme
沒有切換
Terracotta是開源的,免費提供基本產品。
這可能會有所幫助: http : //javapathfinder.sourceforge.net/
同步錯誤通常難以重現,因為它們依賴於不同線程之間的細微時序,因此實際上只是“只運行程序”的實現並不總是“最糟糕的”。 如果只執行一次這些指令,則無法重現兩個線程可以交錯指令的多種不同方式。 在一次運行中測試所有這些組合的可能性更小。 其中一張海報建議使用Java Pathfinder,這聽起來不錯 - 但請注意,它是一個多次運行相同代碼的應用程序,因此您無法真正將其視為另一個JVM實現。
另一個實用技巧是嘗試在盡可能多的不同JVM上運行應用程序。 嘗試不同的供應商,來自同一供應商的不同版本,不同的CPU架構等。 幾年前,我有一個大型多線程應用程序的經驗,該應用程序已在Xeon CPU上的Sun JVM上開發,測試和運行,並且運行良好。 有一次我嘗試在POWER架構上的IBM J9 Java虛擬機上運行它,並且在第一次嘗試時,由於同步錯誤,大約有2/3的測試失敗了。 因此,在不同環境中進行測試可以很好地揭示隱藏的同步問題。
我不知道任何VM一直保證最壞的情況,這似乎是你要求的。 您正在描述的情況可能發生在Sun VM(以及許多其他虛擬機)上,但僅由於緩存問題。 我不熟悉一直故意這樣做的虛擬機。
有很多方法可以觸發並發錯誤。
對於最壞情況的JVM,請嘗試使用手機。 (你的申請可能根本不起作用);)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.