mit-scheme-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MIT-Scheme-devel] Edwin slow file save over WebDAV


From: Richard Loveland
Subject: Re: [MIT-Scheme-devel] Edwin slow file save over WebDAV
Date: Thu, 1 Nov 2012 10:05:13 -0400

Sorry, forgot to CC the list.


On Thu, Nov 1, 2012 at 10:03 AM, Richard Loveland <address@hidden> wrote:
Edwin is in Text mode.

I've attached the output of `dtruss -n mit-scheme' and `dtruss -eon mit-scheme' as two text files, `dtruss.txt' and `dtruss-big.txt', respectively. During the time period they cover, I do the following:

1. `C-x C-f' to find the top-level directory, `/Volumes/default'
2. Then I use Edwin's tab-completion to navigate down several subdirectories, and open a text file.
3. I make a tiny edit.
4. I save the file.
5. I wait for Edwin to return from the save and begin accepting user input again
6. End the `dtruss' call.

Here's some example output from `dtruss-big.txt' (I've added spaces for readability):

1299/0x13ee:        7      5 write(0x5, "Lj\037\0", 0x7C)         = 124 0

15/0x2a74e:   324762 18446744073709450 thread_selfid(0x114000000, 0x83000, 0x18B3)         = 173902 0

1299/0x13ee:      110     45 stat64("/Volumes/default/Global/api/Home/DRAFTS - not visible to clients/Invoice Service/Invoice Service.txt\0", 0x7FFF5FBFE950, 0x1C3F2E)         = 0 0

1299/0x13ee:   753940     45 stat64("/Volumes/default/Global/api/Home/DRAFTS - not visible to clients/Invoice Service/.git/\0", 0x7FFF5FBFE8C0, 0x1C408B)         = -1 Err#2

My layman's interpretation is:

1. write the file (quick)
2. do something called `thread_selfid' (slow)
3. stat the `Invoice Service.txt' file (quick, it exists)
4. stat the `.git' directory, which does not exist (slow)

The dtruss output is littered with these stat calls to non-existent version control directories -- I'm guessing they just correspond to `file-exists?' type procedures?


On Wed, Oct 31, 2012 at 3:37 PM, Taylor R Campbell <address@hidden> wrote:
   Date: Wed, 31 Oct 2012 14:38:51 -0400
   From: Richard Loveland <address@hidden>

   I've recently switched from using GNU Emacs to Edwin to edit files mounted
   using WebDAV. For some reason, when saving the files, Edwin is very slow to
   finish saving and begin accepting user input again. Noticeably slower than
   performing the same operation using GNU Emacs on the same computer, for
   example.

What mode is Edwin in when saving the buffer?  Also, can you dtruss
Edwin just before you save the buffer, and see whether there is any
system call in particular that is taking a long time?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]