|
From: | Richard Loveland |
Subject: | Re: [MIT-Scheme-devel] Edwin slow file save over WebDAV |
Date: | Thu, 1 Nov 2012 10:05:13 -0400 |
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?
[Prev in Thread] | Current Thread | [Next in Thread] |