[squeak-dev] Re: Some DateAndTime experiments
pdebruic at gmail.com
Sat Apr 19 20:31:43 UTC 2014
You probably looked at this but Chronos, in the unadulterated Squeak 4.4
all-in-one, is ~2.5x faster than DateAndTime. E.g.
[100000 timesRepeat: [Timepoint now]] timeToRun 387
[100000 timesRepeat: [DateAndTime now]] timeToRun 971
Maybe there are some ideas worth taking in there.
The Chronos repo is here:
You can load it in a workspace with
Assuming you have metacello loaded.
David T. Lewis wrote
> I have been experimenting with a new implementation of DateAndTime based
> on a UTC magnitude. In this implementation, the instance variables jdn,
> seconds, and nanos are replaced with a single utcMicroseconds, and the
> offset (a Duration) is replaced by localOffsetSeconds (an integer). The
> UTC magnitude and offset are provided directly by primitiveUtcWithOffset
> when doing DateAndTime now.
> I had hoped to achieve a sigificant performance advantage with this
> implementation, and while it does improve performance, I am only seeing
> about a 10% improvement overall, which is considerably less than I had
> Nevertheless, it is indeed faster, and implemention does have some
> The utcMicroseconds magnitude is in units of microseconds, but it is not
> required to be an integer and may represent time to any precision. In
> values are integral unless the instance is explicitly created with a
> New instances created by "DateAndTime now" will have the correct time zone
> offset as provided by the operating system platform, and their magnitude
> set to a UTC value the precision provided by the platform.
> New instances created by other constructors use TimeZone default, which is
> problematic given that the time zone in Squeak may or may not match the
> (presumably correct) values provided by the operating system.
> Instances of DateAndTime are (at the moment) considered equal if their
> are the same, independent of the time zone offset. This makes sense when
> of them as magnitudes (DateAndTime is a Magnitude), but saying that two
> with different local offsets are equal might be wrong in other contexts.
> The localOffsetSeconds is used for displaying the date and time, and is
> related to magnitude. Thus a DateAndTime is both a magnitude (UTC time)
> and a
> formatter (use the offset to show the magnitude in the context of a local
> time zone).
View this message in context: http://forum.world.st/open-paren-brace-bracket-tp4755162p4755475.html
Sent from the Squeak - Dev mailing list archive at Nabble.com.
More information about the Squeak-dev