Skip to content

Releases: austinksmith/Hamsters.js

Hamsters v5.5.3 Released!

12 Jun 04:08
Compare
Choose a tag to compare

We're happy to release version 5.5.3 of Hamsters.js, this release brings the very long coming support for Atomic Operations, allowing us to completely eliminate the majority of thread communication overhead improving performance significantly.

Hamsters.js supports Atomic Operations

We are in the process of updating the wiki documentation for this new feature, When running the new benchmark and comparing the results to our Collatz Conjecture example without SharedArrays, and our Atomic Operations Example which uses SharedArrays && Atomic Operations, we can see performance increases in the table below. These results were taken on a Core i5 8400H 2.3ghz 4c/8t processor, 16GB of DDR4, running on Ubuntu 22.04 LTS using Brave v1.66.118.

Number of Threads Time Taken (No SharedArrays) Time Taken (SharedArrays) Time Difference (ms) Time Difference (%) % Performance Increase
1 67,667ms 61,678ms 5,989ms -8.86% 9.35%
2 37,095ms 32,564ms 4,531ms -12.21% 12.20%
3 27,101ms 23,626ms 3,475ms -12.82% 12.82%
4 22,819ms 20,177ms 2,642ms -11.58% 13.04%
5 25,530ms 21,476ms 4,054ms -15.88% 18.87%
6 23,900ms 19,844ms 4,056ms -16.95% 20.40%
Average 34,852ms 30,291.5ms 4,560.5ms -13.09% 14.14%

Enjoy!

Hamsters v5.5.2 Released!

09 Jun 14:12
Compare
Choose a tag to compare

We're happy to release version 5.5.2 of Hamsters.js, this release is aimed at performance and provides some gains for tasks that use only a single thread with a percentage improvement is approximately 21.4% in benchmarks.

  1. Removed unnecessary if statement and return during runtime - improves performance in all scenarios
  2. Removed expensive indexe's calculation from function calls that use only 1 function, improves performance for single threaded tasks
  3. Refined task object creation for better performance and removing unnecessary checks

Enjoy!

Hamsters v5.5.1 Released!

06 Jun 14:48
Compare
Choose a tag to compare

We're happy to release version 5.5.1 of Hamsters.js, this is more of a hotpatch than a release, it just builds upon v5.5.0

  • This is a simple bug fix that restores the typedArrayFromBuffer method that was previously removed in version v5.4.3

Enjoy!

Hamsters v5.5.0 Released!

06 Jun 14:27
Compare
Choose a tag to compare

We're happy to announce the release of version 5.5.0 of Hamsters.js this release brings some improvements to the library performance and architecture and a new optional parameter for functions that have outputs of different sizes than their inputs. Here are the list of changes below!

  • Refactored library initialization to reduce library memory usage before initialization and improve performance
  • Completely eliminated passing of library variables between functions, improves performance
  • Added new optional parameter called mixedOutput: Boolean you can pass true or false to this. Its recommended not to use this unless you needed as it can reduce performance slightly.
  • Refactored library classes to match JavaScript class naming conventions

Enjoy!

Hamsters v5.4.4 Released!

13 Oct 12:46
Compare
Choose a tag to compare

This release resolves a few issues that will increase overall performance however it comes at a cost of higher memory usage

Resolved index calculation to support odd numbers of threads such as triple core processors
Added more unit tests
Resolved some unit tests not working in Firefox browser
Added task.output for output data, previously the library was modifying the input array as the output, this was great from a memory usage standpoint however its bad practice to modify inputs so that's no longer happening.
Cleaned up code some

Enjoy!

Hamsters v5.4.3 Released!

25 Sep 23:09
Compare
Choose a tag to compare

This release was primarily targeted around more unit testing and fixing the debugging metrics, additionally there is a slight performance increase and resolves a memory leak.

  • Resolved memory leak of pool.tasks array overflowing with random data
  • Resolved issues with debugging mode not returning accurate thread start and completion times
  • Modified indexes calculation to be 100% accurate with new unit tests
  • Removed pool.tasks array and function calls, slight performance increase.
  • When using debugging mode you can now see individual performance for each thread as well as performance of each task, start and end * times as well as enqueued and dequeued times if a task gets queued waiting for a thread.

This release also drops support for Internet Explorer 9, support for Internet Explorer 10 is no longer guaranteed to work and has not been tested.

Enjoy!

Hamsters.js v5.4.1 Released!

09 Oct 13:51
Compare
Choose a tag to compare

This release is mainly a bug fix release and does not include any optimizations or other changes beyond fixing the below issues.

  • Resolved issues running with reactNative
  • Resolved issues with overriding maxThreads not working on startup
  • Removed additional splice data aggregation method not supported by reactNative

Enjoy!

Hamsters.js v5.4.0 Released!

01 Oct 01:37
Compare
Choose a tag to compare

I'm happy to announce the release of Hamsters.js v5.4.0, this version is a major overhaul and completes the implementation of the JIT data management system. This is truly a game changing release as it dramatically reduces memory usage while also increasing per thread scaling and reducing library overhead and total package size.

This release also comes with a few notable changes

  • Memoization support has been temporarily removed

  • JIT data management is now fully implemented, reducing memory allocation to at most 1 copy of the original input data

  • Removed old unused logic to reduce code package size

  • You can now control which threads operate on which pieces of your input data by passing a new optional indexes argument

    const params = {
      array: [1,2,3,4],
      threads: 2,
      indexes: [
        {start: 0, end: 0}, //Thread one will operate on only the first element
        {start: 1, end: 3} //Thread two will operate on the remaining elements
     ]    
    };

Hamsters.js v5.3.9 Released!

15 Aug 05:54
Compare
Choose a tag to compare

Hamsters.js v5.3.9 is officially live!

Latest Updates

  • Fixed problems running on Internet Explorer
  • Internet Explorer support now moved to legacy only mode
  • Added Just In Time data management to improve scaling
  • Dramatically reduced runtime complexity
  • Added support for indexes for use with JIT data management, major performance increase. Future versions of Hamsters.js will expand on this functionality for more fine tuned management of which threads operate on which pieces of data.

Enjoy!

Hamsters.js v5.3.7 Released!

07 Aug 01:53
Compare
Choose a tag to compare

Hamsters.js v5.3.7 is officially live!

Latest Updates

  • Fixed problems with data aggregation when using multiple threads on React Native

Enjoy!