-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

So one of my earnest desires for improving Gitit performance on
test.darcs.net was to remove as many calls to darcs changes as
possible in Gitit & Filestore (finished in HEAD), and also for 'darcs
changes' to be much faster for the use-case of getting the last hash
affecting a given file.

The latter seems to've been done during the Darcs sprint, and the
- --max-count option is now available at the branch
http://code.haskell.org/darcs/sprint-2009-04/max-count

It offers a considerable speedup: example timings on my system include

AlexanderGrafov.page
real    0m0.150s
user    0m0.124s
sys     0m0.020s

AnttiJuhaniKaijanaho.page
real    0m0.150s
user    0m0.128s
sys     0m0.020s

Backups.page
real    0m0.120s
user    0m0.092s
sys     0m0.020s

A comparable command, dropping the max-count, is noticeably slower:

AlexanderGrafov.page
real    0m3.320s
user    0m1.188s
sys     0m0.220s

AnttiJuhaniKaijanaho.page
real    0m1.011s
user    0m0.892s
sys     0m0.120s

Backups.page
real    0m9.653s
user    0m1.380s
sys     0m0.236s

enWheeler.page
real    0m1.272s
user    0m1.032s
sys     0m0.212s

BestPractices.page
real    0m1.947s
user    0m1.652s
sys     0m0.264s

Binaries.page
real    0m2.102s
user    0m1.480s
sys     0m0.228s

And even on my speedy personal system the speedup in a gitit instance
is perceptible; so I think with all these optimizations put together,
test.darcs.net may be usable again. Attached are patches that make
filestore use --max-count=1 (due to versioning you may need to
override the darcs dependency).

- --
gwern
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Use GnuPG with Firefox : http://getfiregpg.org (Version: 0.7.5)

iEYEAREKAAYFAknrN3YACgkQvpDo5Pfl1oJNsQCfebax7yA5kP4kz58mLFfFj2hX
sQ0AnjioqmPdb14tBvio7SNsnYl8M3S8
=N98U
-----END PGP SIGNATURE-----
[09:58 AM] 1.0Mb$ for file in *; do echo $file && time darcs changes --xml-output --max-count=1 $file > /dev/null; done
AddACommand.page

real	0m0.066s
user	0m0.048s
sys	0m0.020s
AlexanderGrafov.page

real	0m0.150s
user	0m0.124s
sys	0m0.020s
AnttiJuhaniKaijanaho.page

real	0m0.150s
user	0m0.128s
sys	0m0.020s
Backups.page

real	0m0.120s
user	0m0.092s
sys	0m0.020s
BenWheeler.page

real	0m0.150s
user	0m0.132s
sys	0m0.020s
BestPractices.page

real	0m0.065s
user	0m0.048s
sys	0m0.020s
Binaries.page

real	0m0.064s
user	0m0.048s
sys	0m0.016s
BlogBuzz.page

real	0m0.117s
user	0m0.100s
sys	0m0.008s
BranchingAndMerging.page

real	0m0.125s
user	0m0.100s
sys	0m0.016s
BugTrackerHowto.page

real	0m0.070s
user	0m0.044s
sys	0m0.024s
BugTrackerIssueManagement.page

real	0m0.067s
user	0m0.044s
sys	0m0.024s
BugTracker.page

real	0m0.141s
user	0m0.112s
sys	0m0.032s
BugTrackerTopics.page

real	0m0.140s
user	0m0.112s
sys	0m0.032s
BuildingUnderWindows.page

real	0m0.069s
user	0m0.060s
sys	0m0.008s
CabalWishlist.page

real	0m0.116s
user	0m0.092s
sys	0m0.016s
CategoryBinaries.page

real	0m0.064s
user	0m0.052s
sys	0m0.012s
CategoryDevelopers.page

real	0m0.124s
user	0m0.108s
sys	0m0.024s
CategoryEmacs.page

real	0m0.062s
user	0m0.040s
sys	0m0.020s
CategoryRecruitment.page

real	0m0.123s
user	0m0.104s
sys	0m0.016s
ChristianKellermann.page

real	0m0.154s
user	0m0.120s
sys	0m0.024s
CodingStyle.page

real	0m0.064s
user	0m0.052s
sys	0m0.012s
CompilingOnCygwin.page

real	0m0.063s
user	0m0.052s
sys	0m0.008s
ConfictMiseryAnalysis.page

real	0m0.062s
user	0m0.052s
sys	0m0.012s
Config.hs

real	0m1.399s
user	0m1.208s
sys	0m0.184s
ConflictMisery.page

real	0m0.062s
user	0m0.060s
sys	0m0.000s
ConflictsFAQ.page

real	0m0.052s
user	0m0.036s
sys	0m0.012s
ConflictsHistory.page

real	0m0.109s
user	0m0.088s
sys	0m0.020s
ConvertingFromArch.page

real	0m0.065s
user	0m0.044s
sys	0m0.012s
ConvertingFromCvs

real	0m0.442s
user	0m0.320s
sys	0m0.116s
ConvertingFromCvs.page

real	0m0.151s
user	0m0.136s
sys	0m0.012s
ConvertingFromMercurial.page

real	0m0.150s
user	0m0.128s
sys	0m0.028s
ConvertingFromSubversion.page

real	0m0.063s
user	0m0.052s
sys	0m0.008s
Copy_Patch.page

real	0m0.136s
user	0m0.108s
sys	0m0.032s
CopyPatch.page

real	0m0.146s
user	0m0.112s
sys	0m0.020s
CraigLennox.page

real	0m0.150s
user	0m0.124s
sys	0m0.028s
CVSKeywords.page

real	0m0.061s
user	0m0.044s
sys	0m0.016s
DanDutkiewicz.page

real	0m0.116s
user	0m0.088s
sys	0m0.028s
_darcs

real	0m1.592s
user	0m1.376s
sys	0m0.172s
Darcs2Docbook.page

real	0m0.112s
user	0m0.088s
sys	0m0.024s
DarcsDeps.page

real	0m0.116s
user	0m0.092s
sys	0m0.020s
DarcsDoc.page

real	0m0.115s
user	0m0.084s
sys	0m0.028s
DarcsGit.page

real	0m0.041s
user	0m0.032s
sys	0m0.008s
DarcsInternals.page

real	0m0.112s
user	0m0.100s
sys	0m0.012s
DarcsIrcChannel.page

real	0m0.112s
user	0m0.100s
sys	0m0.012s
DarcsLibraries.page

real	0m0.047s
user	0m0.036s
sys	0m0.008s
DarcsMode.page

real	0m0.113s
user	0m0.100s
sys	0m0.016s
DarcsMonitor.page

real	0m0.166s
user	0m0.120s
sys	0m0.040s
DarcsPatchWatch.page

real	0m0.178s
user	0m0.148s
sys	0m0.016s
DarcsReannotate.page

real	0m0.172s
user	0m0.144s
sys	0m0.028s
DarcsTeam.page

real	0m0.155s
user	0m0.136s
sys	0m0.012s
DarcsTwo

real	0m0.899s
user	0m0.772s
sys	0m0.112s
DarcsTwo.page

real	0m0.166s
user	0m0.140s
sys	0m0.028s
DarcsumMode.page

real	0m0.053s
user	0m0.048s
sys	0m0.004s
DarcsUnderWine.page

real	0m0.060s
user	0m0.040s
sys	0m0.012s
DarcsWeeklyNews.page

real	0m0.167s
user	0m0.132s
sys	0m0.036s
darcs-wiki-config

real	0m1.478s
user	0m1.264s
sys	0m0.212s
DarkArctic.page

real	0m0.106s
user	0m0.080s
sys	0m0.020s
DefaultSwitches.page

real	0m0.040s
user	0m0.036s
sys	0m0.004s
DeveloperFAQ.page

real	0m0.040s
user	0m0.036s
sys	0m0.008s
DeveloperGettingStarted.page

real	0m0.061s
user	0m0.052s
sys	0m0.004s
DeveloperTips.page

real	0m0.057s
user	0m0.052s
sys	0m0.012s
DiagnosticMessages.page

real	0m0.062s
user	0m0.048s
sys	0m0.012s
DifferencesFromArch.page

real	0m0.056s
user	0m0.048s
sys	0m0.008s
DifferencesFromCVS.page

real	0m0.057s
user	0m0.040s
sys	0m0.012s
DifferencesFromSubversion.page

real	0m0.148s
user	0m0.128s
sys	0m0.020s
DocumentationWishlist.page

real	0m0.092s
user	0m0.076s
sys	0m0.016s
EricKow.page

real	0m0.103s
user	0m0.084s
sys	0m0.016s
EsaIlariVuokko.page

real	0m0.149s
user	0m0.140s
sys	0m0.008s
FeatureRequests.page

real	0m0.113s
user	0m0.092s
sys	0m0.024s
Features.page

real	0m0.109s
user	0m0.096s
sys	0m0.012s
FlorentBecker

real	0m0.337s
user	0m0.264s
sys	0m0.072s
FoCAL.page

real	0m0.074s
user	0m0.064s
sys	0m0.012s
Forensics.page

real	0m0.046s
user	0m0.036s
sys	0m0.008s
Formatting.page

real	0m0.120s
user	0m0.088s
sys	0m0.016s
FortuneCookies.page

real	0m0.107s
user	0m0.100s
sys	0m0.004s
Fosdem.page

real	0m0.106s
user	0m0.088s
sys	0m0.020s
FrequentlyAskedQuestions.page

real	0m0.055s
user	0m0.048s
sys	0m0.008s
FrontPage.page

real	0m0.055s
user	0m0.036s
sys	0m0.016s
Fundraising.page

real	0m0.106s
user	0m0.080s
sys	0m0.028s
GADTPlan.page

real	0m0.107s
user	0m0.096s
sys	0m0.012s
GaneshPatchAlgebra.page

real	0m0.055s
user	0m0.044s
sys	0m0.008s
GettingStarted.page

real	0m0.105s
user	0m0.096s
sys	0m0.012s
GHC6.6.page

real	0m0.054s
user	0m0.052s
sys	0m0.000s
gitit.log

real	0m1.547s
user	0m1.312s
sys	0m0.220s
gitit.prof

real	0m1.801s
user	0m1.552s
sys	0m0.244s
gitit-users

real	0m1.398s
user	0m1.220s
sys	0m0.144s
Glossary.page

real	0m0.057s
user	0m0.032s
sys	0m0.024s
Gnus.page

real	0m0.082s
user	0m0.060s
sys	0m0.028s
GoogleSummerOfCodeMentoring.page

real	0m0.103s
user	0m0.092s
sys	0m0.016s
GoogleSummerOfCode.page

real	0m0.103s
user	0m0.104s
sys	0m0.008s
GraphicalInterface.page

real	0m0.053s
user	0m0.036s
sys	0m0.016s
GuillaumeHoffmann.page

real	0m0.150s
user	0m0.112s
sys	0m0.036s
HashedPristine.page

real	0m0.109s
user	0m0.080s
sys	0m0.020s
Help.page

real	0m0.054s
user	0m0.040s
sys	0m0.012s
HiddenConflicts.page

real	0m0.102s
user	0m0.084s
sys	0m0.016s
HintsAndTips.page

real	0m0.054s
user	0m0.036s
sys	0m0.020s
Hooks.page

real	0m0.097s
user	0m0.084s
sys	0m0.012s
Hosting.page

real	0m0.095s
user	0m0.072s
sys	0m0.020s
HowToHelp.page

real	0m0.099s
user	0m0.080s
sys	0m0.020s
HttpAuthentication.page

real	0m0.059s
user	0m0.044s
sys	0m0.008s
IdeasForDarcs.page

real	0m0.137s
user	0m0.124s
sys	0m0.016s
InteroperabilityWithCvs.page

real	0m0.052s
user	0m0.032s
sys	0m0.024s
Issues1.0.1.page

real	0m0.092s
user	0m0.084s
sys	0m0.008s
Issues1.0.2.page

real	0m0.089s
user	0m0.064s
sys	0m0.028s
JCh.page

real	0m0.152s
user	0m0.128s
sys	0m0.020s
JeanPhillipeBernardy.page

real	0m0.155s
user	0m0.124s
sys	0m0.032s
JeremyFincher.page

real	0m0.150s
user	0m0.148s
sys	0m0.008s
JuliuszChroboczek.page

real	0m0.114s
user	0m0.088s
sys	0m0.024s
LionKimbro.page

real	0m0.166s
user	0m0.148s
sys	0m0.008s
LocalSpellingWords.page

real	0m0.093s
user	0m0.080s
sys	0m0.020s
MaintainerTips.page

real	0m0.060s
user	0m0.040s
sys	0m0.012s
Manual

real	0m1.359s
user	0m1.152s
sys	0m0.176s
MarkStosberg.page

real	0m0.102s
user	0m0.100s
sys	0m0.008s
MetaPerl.page

real	0m0.161s
user	0m0.152s
sys	0m0.004s
MichaelSchwern.page

real	0m0.118s
user	0m0.100s
sys	0m0.016s
MigratingFromSubversion.page

real	0m0.053s
user	0m0.044s
sys	0m0.012s
MikeCaley.page

real	0m0.152s
user	0m0.132s
sys	0m0.024s
MoreAboutWiki.page

real	0m0.100s
user	0m0.072s
sys	0m0.016s
NamedPatch.page

real	0m0.052s
user	0m0.040s
sys	0m0.016s
NestedRepositories.page

real	0m0.088s
user	0m0.064s
sys	0m0.020s
News

real	0m1.004s
user	0m0.844s
sys	0m0.144s
News.page

real	0m0.088s
user	0m0.068s
sys	0m0.020s
NicolasPouillard.page

real	0m0.150s
user	0m0.128s
sys	0m0.020s
NimrodAbing.page

real	0m0.152s
user	0m0.116s
sys	0m0.032s
OtherPagesWhichMentionDarcs.page

real	0m0.136s
user	0m0.124s
sys	0m0.012s
PacksSpecification.page

real	0m0.085s
user	0m0.072s
sys	0m0.012s
フロントページ.page

real	0m0.067s
user	0m0.068s
sys	0m0.004s
PatchGroups.page

real	0m0.158s
user	0m0.144s
sys	0m0.008s
PatchPlugins.page

real	0m0.158s
user	0m0.108s
sys	0m0.044s
PatchSelectionMechanism.page

real	0m0.051s
user	0m0.036s
sys	0m0.016s
PatchTheoryExample.page

real	0m0.165s
user	0m0.140s
sys	0m0.012s
PatchTheoryGlossary.page

real	0m0.161s
user	0m0.140s
sys	0m0.016s
PatchTheory.page

real	0m0.159s
user	0m0.136s
sys	0m0.028s
PatchTheoryPeople.page

real	0m0.148s
user	0m0.124s
sys	0m0.028s
PatchTheoryQuestions.page

real	0m0.111s
user	0m0.092s
sys	0m0.012s
PatchViewer.page

real	0m0.166s
user	0m0.152s
sys	0m0.016s
PekkaPatchTheory.page

real	0m0.135s
user	0m0.116s
sys	0m0.016s
Performance.page

real	0m0.053s
user	0m0.036s
sys	0m0.012s
Permutivity.page

real	0m0.050s
user	0m0.036s
sys	0m0.016s
PetrRockai.page

real	0m0.153s
user	0m0.132s
sys	0m0.012s
PlanningSprints.page

real	0m0.082s
user	0m0.064s
sys	0m0.016s
PreparationBranches.page

real	0m0.082s
user	0m0.076s
sys	0m0.008s
Profiling.page

real	0m0.049s
user	0m0.040s
sys	0m0.008s
ProjectsUsingDarcs.page

real	0m0.044s
user	0m0.028s
sys	0m0.012s
ProposalForSubrepositories.page

real	0m0.081s
user	0m0.060s
sys	0m0.020s
QA%Roadmap.page

real	0m0.080s
user	0m0.056s
sys	0m0.020s
RasmusKaj.page

real	0m0.156s
user	0m0.128s
sys	0m0.024s
Recruitment.page

real	0m0.083s
user	0m0.068s
sys	0m0.012s
ReinierLamers.page

real	0m0.150s
user	0m0.136s
sys	0m0.016s
RelatedSoftware.page

real	0m0.049s
user	0m0.032s
sys	0m0.020s
ReleaseManagement.page

real	0m0.078s
user	0m0.064s
sys	0m0.016s
RemkoTroncon.page

real	0m0.148s
user	0m0.128s
sys	0m0.020s
RepoViaSSH.page

real	0m0.035s
user	0m0.020s
sys	0m0.020s
ResponseToHavoc.page

real	0m0.049s
user	0m0.040s
sys	0m0.008s
ReviewerTips.page

real	0m0.049s
user	0m0.036s
sys	0m0.016s
Roadmap.page

real	0m0.076s
user	0m0.056s
sys	0m0.024s
RubyDarcs.page

real	0m0.141s
user	0m0.124s
sys	0m0.020s
RunningDarcsOnFreebsdFive.page

real	0m0.129s
user	0m0.108s
sys	0m0.020s
RyanLowe.page

real	0m0.104s
user	0m0.096s
sys	0m0.012s
SchwernHatesDarcs.page

real	0m0.141s
user	0m0.120s
sys	0m0.020s
SchwernLikesDarcs.page

real	0m0.136s
user	0m0.116s
sys	0m0.016s
ShaeErisson.page

real	0m0.150s
user	0m0.112s
sys	0m0.032s
ShellCompletion.page

real	0m0.048s
user	0m0.040s
sys	0m0.004s
SpontaneousBranches.page

real	0m0.078s
user	0m0.056s
sys	0m0.032s
Sprints

real	0m0.041s
user	0m0.032s
sys	0m0.008s
sshfs.page

real	0m0.069s
user	0m0.052s
sys	0m0.016s
SSHNotes.page

real	0m0.047s
user	0m0.020s
sys	0m0.028s
StandardDarcsBenchmarks.page

real	0m0.046s
user	0m0.036s
sys	0m0.008s
StartSide.page

real	0m0.135s
user	0m0.104s
sys	0m0.016s
stassats.page

real	0m0.068s
user	0m0.060s
sys	0m0.008s
static

real	0m1.404s
user	0m1.272s
sys	0m0.128s
StephaneBortzmeyer.page

real	0m0.101s
user	0m0.084s
sys	0m0.020s
StrangeThings.page

real	0m0.049s
user	0m0.048s
sys	0m0.000s
Tailor

real	0m0.342s
user	0m0.260s
sys	0m0.064s
TailorMonotone.page

real	0m0.048s
user	0m0.036s
sys	0m0.008s
Tailor.page

real	0m0.138s
user	0m0.104s
sys	0m0.032s
Tailor.py.page

real	0m0.136s
user	0m0.120s
sys	0m0.012s
Talks.page

real	0m0.072s
user	0m0.056s
sys	0m0.016s
template.html

real	0m1.722s
user	0m1.492s
sys	0m0.216s
template.html-2009-04-15

real	0m1.636s
user	0m1.332s
sys	0m0.220s
TestingTips.page

real	0m0.049s
user	0m0.040s
sys	0m0.008s
TimChevalier.page

real	0m0.101s
user	0m0.084s
sys	0m0.020s
TracOnDarcs

real	0m0.958s
user	0m0.836s
sys	0m0.116s
TracOnDarcs.page

real	0m0.034s
user	0m0.016s
sys	0m0.016s
TrentBuck.page

real	0m0.119s
user	0m0.104s
sys	0m0.004s
Unison.page

real	0m0.046s
user	0m0.032s
sys	0m0.016s
VersionControlComparisons.page

real	0m0.071s
user	0m0.060s
sys	0m0.012s
WhyYouWantPatchTheory.page

real	0m0.134s
user	0m0.120s
sys	0m0.016s
WikiToAdd.page

real	0m0.071s
user	0m0.064s
sys	0m0.012s
WindowsConfiguration.page

real	0m0.141s
user	0m0.124s
sys	0m0.020s
WindowsConsoles.page

real	0m0.045s
user	0m0.032s
sys	0m0.016s
Windows.page

real	0m0.141s
user	0m0.124s
sys	0m0.024s
WishList.page

real	0m0.071s
user	0m0.060s
sys	0m0.012s
Workflows.page

real	0m0.068s
user	0m0.052s
sys	0m0.016s
WorkFlowsVsSubversion.page

real	0m0.045s
user	0m0.040s
sys	0m0.004s
WorldMaker.page

real	0m0.158s
user	0m0.132s
sys	0m0.016s
WritingPortableTests.page

real	0m0.068s
user	0m0.056s
sys	0m0.012s
YouTooCanHackOnDarcs.page

real	0m0.138s
user	0m0.104s
sys	0m0.028s
פתיחה.page

real	0m0.069s
user	0m0.060s
sys	0m0.008s
ВведениеВDarcs.page

real	0m0.138s
user	0m0.120s
sys	0m0.012s
ДополнительноеПО.page

real	0m0.070s
user	0m0.052s
sys	0m0.020s
Начало.page

real	0m0.068s
user	0m0.060s
sys	0m0.008s
维基教程

real	0m1.224s
user	0m1.068s
sys	0m0.144s
首頁.page

real	0m0.067s
user	0m0.044s
sys	0m0.020s

Attachment: maxcount.dpatch
Description: Binary data

_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to