X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sbcglobal.net; s=s1024; t=1409978326; bh=glN++h9niVLLZjNsDiWZalGbBeT57iDTFIbZMy0J8sA=; h=Received:Received:Received:DKIM-Signature:X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:From:Subject; b=A8n3efVjF5kAgEYUJ/8nhJadti1aNlNEmCHr7btNMryOkkd45g/enORxuohBO6JXAYWysOYBCqpIL4GUkNTZwUxVFWtv0Hq5CSZf2J7+W7tUdFxyik40Jd8zjs+qw1M6UGf/5GXiZL1A92K1zcDghqevuCkWH2GBcagrK9JxIZo= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=sbcglobal.net; b=O8nrssu4PL0Pqrs0ZpKMPRHcyJVeHtwnlx4EJBb9AlYX3z0zm7mTvkTpO3NIbtA5GxupzCtp3w+T35+M2GotDseNtK+7ogsH0F9RUoNhuPS+NmVGzCmbk97yfr2J1cPhysnfCbozA8eapiHE7a5i6iaK0Ak9xql4/P4bB2dn39Q=; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sbcglobal.net; s=s1024; t=1409978326; bh=glN++h9niVLLZjNsDiWZalGbBeT57iDTFIbZMy0J8sA=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer; b=5XAev1pA5f5VvA1Uh0YQP2uwlGoC7fNzRh3GIEJPizLYU9aE2hkGrZtepM+74XLkR5aO8YtyELDZLrcfpks6p3vLH0YjNA1IuHKSXR/yOMNI3cIzmOTvxk1LdfVnrB7T/x1uS1bMmSLU5/NMgoridQQcJ1+r06J8PQhzsq4Y5DE= X-Yahoo-Newman-Id: 648352 DOT 42064 DOT bm AT smtp227 DOT mail DOT gq1 DOT yahoo DOT com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: X_eOWpsVM1na0CnWuYBd3g0XX..DWwA_Gn9gsSafnP8OnAn DB2ZazKP8DB9npAd9qX2rNrHqtizCr31YofHxq3Krzj1tQk2rNwTUszUEJRZ 5iLoxYcUDMbL5Z_Td0qON5PHJZI5SwFc09XU30uKJGkK1CY3arxgZjpfaqmm Qy0vBjiHoz48WJ_ZM_AdOiqkDb9803qgCvdhHLkZWt4SqObPRRapXLbKPkD3 hRcFXamy7F2OebDKBude37gjlW7FVt67PIOG4.dr5wjfpnptOOEr56GMTstR 0XgXkGDMxnk36YFN3tIq5AtbaraMJwdCSbxvf4MkAQX7fFHmGbmU6IyLS5Uu 784Ir5icVF3wA39OiOmSGFiP6usBLM6m_QKAbbD4TeTyDU6Y0hDojLQTMr0W 1RPW7K4Hgaa8NBUJsl8e0HpxiJgm0b581.q9NFp.9e57xu03wwElm8z0ATyU VLvq2WXTFDdfhqqDkK_9KNk0li9mXuQGNhu1Gt344.iz8q3C8NNCaHi5vxLa nisix9t_8GiCpWfeRKbSZf9Lnjt8vhl1nmGaW1M3vf6Ybv4OGhjPA X-Yahoo-SMTP: b8jVkbOswBAqZ4BhECp7nxPJUfTGEnEGv_G4qgQeZMeAbA-- Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [geda-user] gschem sometimes takes a nap From: Edward Hennessy In-Reply-To: <68DB3C77-2335-4016-B466-20CA135CD4CC@sbcglobal.net> Date: Fri, 5 Sep 2014 21:38:44 -0700 Message-Id: <75C94905-4B16-4DEE-B42F-E33F35312204@sbcglobal.net> References: <7C56210D-D45D-4E93-B755-E373AC009668 AT sbcglobal DOT net> <68DB3C77-2335-4016-B466-20CA135CD4CC AT sbcglobal DOT net> To: geda-user AT delorie DOT com X-Mailer: Apple Mail (2.1878.6) Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id s864cp3E015379 Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Sep 5, 2014, at 7:59 PM, Edward Hennessy wrote: > > On Sep 5, 2014, at 2:25 AM, Kai-Martin Knaak wrote: > >> Edward Hennessy wrote: >> >>> Does anyone have a schematic that can replicate >>> the issue that would be available for me to use? >> >> See my schematics guinea pig in the attachment. I was able to trigger the >> freeze by moving chunks of the schematic around. >> > > I believe I've reproduced the issue on my machine with your schematic. I can > sometimes get gschem to freeze a bit when moving objects around. However, when > selecting all objects on the schematic using Ctrl-A, my gschem will freeze for > five seconds. > > When this freeze occurs, the function o_redraw_rects() is getting called with > over 6000 rectangles. And, it appears the time is spent repainting the background. > > Shutting off the grid or switching to dots makes the problem much less pronounced. > > Does this description match what you are seeing? A potential fix is checked into source control. Hopefully, it isn't just tuned to execute faster on my machine. Something not intuitive is going on under the hood: - The change in x_event.c reduces the number of invalid rectangles to one - yields a speed improvement - The change in x_grid.c moves the cairo_stroke() into the for loop - performance actually gets WORSE - When both changes are combined - performance is much faster than the changes in x_event.c alone I've been able to resize the gschem window and get the naptime up to 10 seconds. These two changes reduce the time, under the same conditions, to about 1 second. Cheers, Ed