[squeak-dev] The Trunk: Files-eem.195.mcz

christoph.thiede at student.hpi.uni-potsdam.de christoph.thiede at student.hpi.uni-potsdam.de
Tue Sep 13 12:10:14 UTC 2022


Hi Eliot,

thanks for the speed-up! Would you mind to have a short look at Files-ct.198? I think there might be a regression in this patch for Windows. :-)

Best,
Christoph

---
Sent from Squeak Inbox Talk

On 2022-07-13T21:27:01-07:00, eliot.miranda at gmail.com wrote:

> Much smaller improvement on Windows but still nice to have. Old: '10,100
> per second. 98.6 microseconds per run. 0 % GC time.' New: '14,700 per
> second. 67.8 microseconds per run. 0 % GC time.'
> 
> (paths used '\no\where\at\all', '\Users\eliot\Desktop\not there'
> FileDirectory default)
> 
> On Wed, Jul 13, 2022 at 9:09 PM <commits at source.squeak.org> wrote:
> 
> > Eliot Miranda uploaded a new version of Files to project The Trunk:
> > http://source.squeak.org/trunk/Files-eem.195.mcz
> >
> > ==================== Summary ====================
> >
> > Name: Files-eem.195
> > Author: eem
> > Time: 13 July 2022, 9:09:36.427827 pm
> > UUID: 7ccbfb5c-e5d3-4911-9497-09fdc484d09c
> > Ancestors: Files-eem.194
> >
> > Occasionally FileDirectory>>exists fails.  The old implementation seems
> > unreliable, but it's also slow.  So if possible, implement it above
> > primLookupEntryIn:name:
> >
> >
> > Old:
> > | foo bar baz |
> > foo := FileDirectory on: '/no/where/at/all'.
> > bar := FileDirectory on: '/Users/eliot/Desktop/not there'.
> > baz := FileDirectory default.
> > [foo exists. bar exists. baz exists] bench '8,070 per second. 124
> > microseconds per run. 0 % GC time.'
> >
> > New:
> > | foo bar baz |
> > foo := FileDirectory on: '/no/where/at/all'.
> > bar := FileDirectory on: '/Users/eliot/Desktop/not there'.
> > baz := FileDirectory default.
> > [foo exists. bar exists. baz exists] bench '73,700 per second. 13.6
> > microseconds per run. 0.64 % GC time.'
> >
> > =============== Diff against Files-eem.194 ===============
> >
> > Item was changed:
> >   ----- Method: FileDirectory>>exists (in category 'testing') -----
> >   exists
> > +       "Answer whether the directory exists"
> > +       ^self class currentDirectoryNickname
> > +               ifNotNil:
> > +                       [:me|
> > +                       (self primLookupEntryIn: pathName asVmPathName
> > name: me asVmPathName)
> > +                               ifNil: [false]
> > +                               ifNotNil: [:maybeErr| maybeErr ~~
> > #primFailed]]
> > +               ifNil:
> > +                       [(self primLookupEntryIn: pathName asVmPathName
> > index: 1) ~~ #badDirectoryPath]!
> > - "Answer whether the directory exists"
> > -
> > -       | result |
> > -       result := self primLookupEntryIn: pathName asVmPathName index: 1.
> > -       ^ result ~= #badDirectoryPath
> > - !
> >
> >
> >
> 
> -- 
> _,,,^..^,,,_
> best, Eliot
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220713/14903653/attachment.html>
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220913/c8f692b4/attachment.html>


More information about the Squeak-dev mailing list