Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 64200 invoked from network); 19 Jun 2007 13:08:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Jun 2007 13:08:47 -0000 Received: (qmail 15251 invoked by uid 500); 19 Jun 2007 13:08:50 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 15220 invoked by uid 500); 19 Jun 2007 13:08:50 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 15211 invoked by uid 99); 19 Jun 2007 13:08:50 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Jun 2007 06:08:50 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Jun 2007 06:08:46 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 683B07141FE for ; Tue, 19 Jun 2007 06:08:26 -0700 (PDT) Message-ID: <3686473.1182258506424.JavaMail.jira@brutus> Date: Tue, 19 Jun 2007 06:08:26 -0700 (PDT) From: "Peter Novodvorsky (JIRA)" To: commits@harmony.apache.org Subject: [jira] Updated: (HARMONY-4036) [drlvm][thread] significant performance degradation (scalability problem), in particular on DaCapo:xalan (2x) In-Reply-To: <20381106.1180959276090.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HARMONY-4036?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Peter Novodvorsky updated HARMONY-4036: --------------------------------------- Attachment: readers_writers_locktable_untabify_indent_2.patch updated patch: added asserts into reader/writer. > [drlvm][thread] significant performance degradation (scalability problem), in particular on DaCapo:xalan (2x) > ------------------------------------------------------------------------------------------------------------- > > Key: HARMONY-4036 > URL: https://issues.apache.org/jira/browse/HARMONY-4036 > Project: Harmony > Issue Type: Bug > Components: DRLVM > Reporter: Evgeniya Maenkova > Assignee: weldon washburn > Priority: Critical > Attachments: reader_writer_lock_table.patch, reader_writer_lock_table_3.patch, readers_writers_lock_table_2.patch, readers_writers_locktable_untabify_indent.patch, readers_writers_locktable_untabify_indent_2.patch, ThreadTest.java > > > Significant performance degradation has been discovered. This happened between r541650-r541654. More likely, this is r541653 (H-2742). > 2x times degradation on Dacapo::xalan. > I wrote the simple reproducer (see please below and to be attached) and got the following data on a machine with 4 logical processors: > 1 thread 4 thread 4thr/1thr > 24-May 2828 9594 3.392504 (r541650) > 31-May 2891 271394 93.87548 (r541654). > > On r541654 version the system time increases significantly, cpu utilization is about 28% only. Unlike r541654 version, where things are going well (cpu utilization ~80%). > Scale factor changed from 3.39 to 93.88. > The test is: > import java.io.IOException; > public class ThreadTest extends Thread { > static private void doComputing(long n) > throws IOException { > int res = 1; > for (int i = 1; i < 1000; i ++) { > res *=i; > } > } > public void doIt() throws Exception { > for (int j = 0; j < 500000; j ++) { > doComputing(getBD()); > } > } > > static long bd = 0; > > static synchronized long getBD() { > bd ++; > if (bd == Long.MAX_VALUE) { > bd = 1; > } > return bd; > } > > public void run() { > for (int i = 0; i < loops; i ++) { > System.out.println(i); > try { > doIt(); > } catch (Exception e) { > e.printStackTrace(); > } > } > } > public static int loops; > public static void main(String[] args) throws Exception{ > loops = Integer.parseInt(args[0]); > int thrNum = Integer.parseInt(args[1]); > long start = System.currentTimeMillis(); > Thread[] threads = new Thread[thrNum]; > for (int i = 0; i < thrNum; i ++) { > threads[i] = new ThreadTest(); > threads[i].start(); > } > > for (int i = 0; i < thrNum; i ++) { > threads[i].join(); > } > System.out.println("result: " + (System.currentTimeMillis() - start)); > } > } > To run it: java ThreadTest > (For instance, "java -Xem:server -XX:vm.dlls=gc_cc.dll -Xmx900m -Xms900m ThreadTest 5 4" or "java -Xem:server -XX:vm.dlls=gc_cc.dll -Xmx900m -Xms900mThreadTest 5 1". These ones are used by me to create the table mentioned above). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.