From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id C3C56BBD5 for ; Thu, 6 Jul 2006 09:17:50 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id k667Hp3S012159 for ; Thu, 6 Jul 2006 09:17:51 +0200 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA07258 for ; Thu, 6 Jul 2006 09:17:50 +0200 (MET DST) Received: from mz1.forethought.net (mzpi3.forethought.net [216.241.36.12]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id k662kAoB006821 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Thu, 6 Jul 2006 04:46:11 +0200 Received: from [216.241.35.41] (helo=[10.0.0.2]) by mz1.forethought.net with esmtp (Exim 4.51) id 1FyJsK-0004yu-2j for caml-list@inria.fr; Wed, 05 Jul 2006 20:45:58 -0600 Message-ID: <44AC798F.90008@gushee.net> Date: Wed, 05 Jul 2006 20:46:39 -0600 From: Matt Gushee User-Agent: Thunderbird 1.5.0.4 (X11/20060615) MIME-Version: 1.0 To: caml-list@inria.fr Subject: Re: [Caml-list] LablGTK app maxes out CPU References: <44AAB3B3.6000807@gushee.net> <20060704191216.GA15888@localhost> <44AAC8EE.1060805@gushee.net> <20060704202117.GB15987@localhost> <44AC4A46.3070105@gushee.net> In-Reply-To: <44AC4A46.3070105@gushee.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 44ACB91F.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 44AC7972.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; lablgtk:01 unix:01 unix:01 increments:98 0.3:98 wrote:01 caml-list:01 btw:02 seems:03 hack:03 fifo:04 90%:94 quite:06 undesirable:07 undesirable:07 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 Matt Gushee wrote: > Nothing seems to make any difference. It's true that my app does allow > other programs to grab a significant amount of CPU time when they need > it. But when my app is idle and not much else is running, 'top' shows it > using over 90% of the CPU. That's certainly not normal, and I would > think very undesirable. > > A 'sleep' call might help, but the standard Unix.sleep only accepts > 1-second increments, which is undesirable. But I can try a wrapper for > usleep() ... unless someone has a better idea. Argh! This is getting really frustrating ... I added a custom sleep function, and called it to sleep for 0.3 seconds whenever there is no input to read. That should hugely reduce the frequency of attempts to read the FIFO, while not introducing much of a delay in response to commands. I tried both implementations, by the way: both the usleep wrapper and the Unix.select hack. It doesn't make any difference. BTW, I did check the app in non-daemon mode, and CPU usage is quite modest, as I would expect. And the only real difference between normal and daemon mode is this Io watching thing. -- Matt Gushee : Bantam - lightweight file manager : matt.gushee.net/software/bantam/ : : RASCL's A Simple Configuration Language : matt.gushee.net/rascl/ :