[squeak-dev] The Inbox: Chronology-Core-mt.51.mcz

Chris Cunningham cunningham.cb at gmail.com
Wed Nov 13 05:08:16 UTC 2019


agree.

On Tue, Nov 12, 2019, 20:51 David T. Lewis <lewis at mail.msen.com> wrote:

> Meanwhile, +1 for moving Marcel's Chronology changes to trunk :-)
>
> Dave
>
> On Tue, Nov 12, 2019 at 05:25:46PM -0600, Chris Muller wrote:
> > (Palm meets forehead.  :)  )
> >
> > Still, not obvious what would be a good name.  #asMetricDescription?
> >  #printSiUnits?
> >
> > And, actually, a more general function would seem to beg for more
> > configurability -- like full-name vs. abbreviation, as well the
> possibility
> > of specifying a precision.
> >
> > I'll have to think about it, thanks...
> >
> >
> >
> > On Tue, Nov 12, 2019 at 3:04 AM Marcel Taeumel <marcel.taeumel at hpi.de>
> > wrote:
> >
> > > Heyho.
> > >
> > > > ... but I think extends even beyond "bytes descriptions" ...
> > >
> > > +1 The "bytes" domain is way too specific for this kind of
> functionality
> > >
> > > https://en.wikipedia.org/wiki/Metric_prefix
> > >
> > > Best,
> > > Marcel
> > >
> > > Am 12.11.2019 04:42:05 schrieb Chris Muller <asqueaker at gmail.com>:
> > > Hi guys,
> > >
> > > This looks like a lot of thought went into making an output that we
> want
> > > to be both functional as well as easy to read.
> > >
> > > On a similar topic, has anyone else been finding #asBytesDescription
> to be
> > > similarly useful for reporting integral quantities, when the top three
> > > orders of precision are enough?  What I like about it is how it lets me
> > > express any integer all the way up to (2 raisedTo: 99) in no more than
> > > *four* characters.  See?
> > >
> > >    9999 asBytesDescription     "10k"
> > >    (2 raisedTo: 99) asBytesDescription     "  '634Y'  <--- Yotta's"
> > >
> > > This is a wonderfully dense representation, but I think extends even
> > > beyond "bytes descriptions" -- I think we need a better name for
> it...  Is
> > > there a proper academic name for this representation?
> > >
> > >  - Chris
> > >
> > >
> > > On Mon, Nov 11, 2019 at 4:40 AM <commits at source.squeak.org> wrote:
> > >
> > >> A new version of Chronology-Core was added to project The Inbox:
> > >> http://source.squeak.org/inbox/Chronology-Core-mt.51.mcz
> > >>
> > >> ==================== Summary ====================
> > >>
> > >> Name: Chronology-Core-mt.51
> > >> Author: mt
> > >> Time: 11 November 2019, 11:40:16.217633 am
> > >> UUID: 199ad2ea-67cb-2545-84e9-4f24e577216f
> > >> Ancestors: Chronology-Core-mt.50
> > >>
> > >> Improve formatting for GC pressure as suggested by Dave.
> > >>
> > >> =============== Diff against Chronology-Core-mt.50 ===============
> > >>
> > >> Item was changed:
> > >>   ----- Method: BlockClosure>>benchFor: (in category
> '*chronology-core')
> > >> -----
> > >>   benchFor: aDuration
> > >>         "See how many times I can value within the given duration.
> I'll
> > >> answer a meaningful description."
> > >>
> > >>         | startTime shouldRun count elapsedTime roundTo3Digits delay
> > >> gcStart gcTime |
> > >>         roundTo3Digits := [:num |
> > >>                 | rounded lowDigit |
> > >>                 rounded := (num * 1000) rounded. "round to 1/1000"
> > >>                 lowDigit := (rounded numberOfDigitsInBase: 10) - 3.
> "keep
> > >> only first 3 digits"
> > >>                 rounded := rounded roundTo:(10 raisedTo: lowDigit).
> > >>                 (lowDigit >= 3 or: [rounded \\ 1000 = 0]) "display
> > >> fractional part only when needed"
> > >>                         ifTrue: [(rounded // 1000) asStringWithCommas]
> > >>                         ifFalse: [(rounded / 1000.0) printString]].
> > >>         delay := aDuration asDelay.
> > >>         count := 0.
> > >>         shouldRun := true.
> > >>         Smalltalk garbageCollect.
> > >>         [ delay wait. shouldRun := false ] forkAt: Processor
> > >> timingPriority - 1.
> > >>         startTime := Time millisecondClockValue.
> > >>         gcStart := (Smalltalk vmParameterAt: 8) + (Smalltalk
> > >> vmParameterAt: 10).
> > >>         [ shouldRun ] whileTrue: [
> > >>                 self value.
> > >>                 count := count + 1 ].
> > >>         elapsedTime := Time millisecondsSince: startTime.
> > >>         gcTime := (Smalltalk vmParameterAt: 8) + (Smalltalk
> > >> vmParameterAt: 10) - gcStart.
> > >>         ^(roundTo3Digits value: count * 1000 / elapsedTime) , ' per
> > >> second.', ((
> > >>                 #(
> > >>                         (1e-3 'seconds')
> > >>                         (1 'milliseconds')
> > >>                         (1e3 'microseconds')
> > >>                         (1e6 'nanoseconds')
> > >>                 )
> > >>                         detect: [ :pair | elapsedTime * pair first >=
> > >> count ]
> > >>                         ifNone: [ #(1e9 'picoseconds') ])
> > >>                 in: [ :pair |
> > >>                         ' {1} {2} per run.' format: {
> > >>                                 (roundTo3Digits value: elapsedTime *
> pair
> > >> first / count).
> > >> +                               pair second } ]), (' {1} % GC time.'
> > >> format: {gcTime / elapsedTime * 100 printShowingMaxDecimalPlaces: 5})!
> > >> -                               pair second } ]), (' {1} % GC time.'
> > >> format: {gcTime / elapsedTime * 100 roundTo: 0.0001})!
> > >>
> > >>
> > >>
>
> >
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20191112/a610af69/attachment-0001.html>


More information about the Squeak-dev mailing list