From: Sebastian Schuberth Date: Thu, 10 Oct 2013 20:19:13 GMT Subject: Re: Windows performance / threading file access Message-ID: <52570BC1.2040208@gmail.com> In-Reply-To: Please keep in mind to CC the msysgit mailing list for Windows-specific stuff. I'm also CC'ing Karsten who has worked on performance improvements for Git for Windows in the past. Thanks for bringing this up! -- Sebastian Schuberth > Hi folks, > > I don't follow the mailing list carefully, so forgive me if this has > been discussed before, but: > > I've noticed that when working with a very large repository using msys > git, the initial checkout of a cloned repository is excruciatingly > slow (80%+ of total clone time). The root cause, I think, is that git > does all the file access serially, and that's really slow on Windows. > > Has anyone considered threading file access to speed this up? In > particular, I've got my eye on this loop in unpack-trees.c: > > static struct checkout state; > static int check_updates(struct unpack_trees_options *o) > { > unsigned cnt = 0, total = 0; > struct progress *progress = NULL; > struct index_state *index = &o->result; > int i; > int errs = 0; > > ... > > for (i = 0; i < index->cache_nr; i++) { > struct cache_entry *ce = index->cache[i]; > > if (ce->ce_flags & CE_UPDATE) { > display_progress(progress, ++cnt); > ce->ce_flags &= ~CE_UPDATE; > if (o->update && !o->dry_run) { > errs |= checkout_entry(ce, &state, NULL); > } > } > } > stop_progress(&progress); > if (o->update) > git_attr_set_direction(GIT_ATTR_CHECKIN, NULL); > return errs != 0; > } > > > Any thoughts on adding threading around the call to checkout_entry? > > > Thanks in advance, > > Stefan -- -- *** Please reply-to-all at all times *** *** (do not pretend to know who is subscribed and who is not) *** *** Please avoid top-posting. *** The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free. You received this message because you are subscribed to the Google Groups "msysGit" group. To post to this group, send email to msysgit@googlegroups.com To unsubscribe from this group, send email to msysgit+unsubscribe@googlegroups.com For more options, and view previous threads, visit this group at http://groups.google.com/group/msysgit?hl=en_US?hl=en --- You received this message because you are subscribed to the Google Groups "msysGit" group. To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.