100% Vanilla Javascript Multithreading & Parallel Execution Library
ARTISTIC-2.0 License
Bot releases are hidden (Show)
Published by austinksmith over 7 years ago
This release is mostly a stop gap release to resolve outstanding bugs that were reported, this will likely be the last version that is hand written and optimized specifically for each platform as the library complexity is getting a little out of hand. Future releases assuming they are performant will be written with the latest features in mind and transpiled to provide legacy support.
Resolved Issues
Microsoft Edge navigator.hardwareConcurrency is undefined
error.
Node Worker is undefined
error.
Beta Features
When using the library within Node.js you can now pass an optional Worker
parameter referencing which third party worker implementation you would like to use. This feature is in beta and may or may not work depending on the implementation you choose to use. Please submit a issue report if you encounter problems with a specific implementation.
var hamsters = require('hamsters.js');
var webWorker = require('....').Worker;
hamsters.init({
maxThreads: 3,
persistence: false,
Worker: webWorker
});
Published by austinksmith over 7 years ago
This release resolves all remaining legacy fall back support bugs including issues with Node.js attempting to invoke workers that don't exist.
RESOLVED ISSUES
Erroneous results when using legacy processing mode and invoking multiple threads - https://github.com/austinksmith/Hamsters.js/issues/27
Node.js Worker is not defined on initialization - https://github.com/austinksmith/Hamsters.js/issues/28
Hamsters.tools.loop functionality not taking into account legacy mode
Special thanks to @Zodiase for discovering the problems.
Published by austinksmith over 7 years ago
This release is a somewhat large change which deviates from how the library was used in the past, library will no longer automatically initialize when your application loads. This decision was made in order to allow for more fine tuned control over the library operation and you can now pass an optional startOptions
configuration object to control library behavior on initialization.
var startOptions = {
maxThreads: integer,
cache: boolean,
debug: booealn,
persistence: boolean
};
hamsters.init(startOptions);
At the moment only the above configuration options are available for your control, in later releases more options will be exposed.
Another notable change is when making use of the optional dataType
argument the library will no longer automatically convert your input array into a TypedArray, you as the developer must ensure you are already passing the library the proper array type. The library will still ensure your final output matches the same dataType
as you supplied in your arguments.
Finally this release includes many performance improvements and resolves some edge case problems related to the hamsters.tools.loop
functionality.
Published by austinksmith over 7 years ago
Resolved Issues
This change removes all remaining special cases for Node.js support, previously the library was having node look for the file under src/common/wheel.min.js
which was typically reserved only for when using Internet Explorer 10. This is no longer the case and will require a proper working third party web worker implementation in order for Node.js to function outside of the legacy fallback mode.
Published by austinksmith over 7 years ago
Resolved Issues
Node.js legacy fallback mode not working
Library will leave less crud in memory after initial setup
Published by austinksmith over 7 years ago
Improvements
self
issue is now resolvedNotes
The memoization method has been moved from sessionStorage
to being an in memory cache, this means the only limit to the number of cached results is how much memory is available on the client so please ensure you're only caching the results you really need to cache.
Published by austinksmith over 7 years ago
Very minor update, this release fixes issues with bower package settings
Published by austinksmith almost 8 years ago
_V3.9.6 Release Notes_
This release consolidates the src/react-native
version back into the normal es5/es6 library versions and the library should now officially work under Node.js.
RESOLVED ISSUES
Path naming issues with IE10 support when making use of web workers
NPM issues with module.exports
, library should now officially work within Node.js
KNOWN ISSUES
Memoization support is broken and not 100% functional, avoid using cache: true
Published by austinksmith almost 8 years ago
_V3.9.1 HOTFIX Release Notes_
RESOLVED
Non transferrable object functionality has been restored thanks @wolfiex for discovering the issue
Resolves processDataType
returning the dataType instead of the data itself in the event it doesn't match with known TypedArrays
KNOWN ISSUES
Memoization support is broken and not 100% functional, avoid using cache: true
Published by austinksmith almost 8 years ago
_V3.9 Release Notes_
BETA SUPPORT
React-native support
ES6 support
RESOLVED
Transferrable object issues
Performance issues related to try catch
logic
KNOWN ISSUES
Memoization support is broken and not 100% functional, avoid using cache: true
Published by austinksmith almost 9 years ago
Eliminates use of eval/new function for legacy devices
Replaces eval call with new function call for loop tool abstraction
Resolves legacy issues with loop tool abstraction
Adds typed array support for legacy and worker environments where applicable (improves output consistency)
Published by austinksmith about 9 years ago
Published by austinksmith about 9 years ago
Adds Node.js support
Implements true threading for Internet Explorer 10 when making use of the common files, falls back to using legacy processing when unable to connect to common/node/wheel.min.js file
Worker environment support (does not support transferrable objects)
Published by austinksmith about 9 years ago
Resolves issues with debugging and concurrency
Introduces unit tests
Improved debugging for legacy devices
Published by austinksmith about 9 years ago
Introduces persistence mode for real time applications such as online games
Dramatically reduced garbage collection for consistent performance
Any typed array passed into a functions params object will make use of transferrable objects now, not just 'array'
Improved multicore performance scaling
Dramatically reduced latency when using optional dataType argument
Published by austinksmith about 9 years ago
Removes all remaining reliance on global window object, should now function outside of browsers
No longer appends setup functions to self object
Slight optimizations
Published by austinksmith about 9 years ago
Increase maxThread fallback count from 2 to 4
Finalized performance improvements
Library polish (jslint)
Reduced library complexity and overhead
Published by austinksmith about 9 years ago
Resolves critical security error in IE11
Published by austinksmith about 9 years ago
Eliminates all dom interaction from the library
Further reduces library runtime overhead & complexity
Major performance improvements when using typed arrays
Massively reduced thread creation performance cost
Removed scar tissue
Fixed minified version runtime issues (YUI compressor instead of UglifyJS)
Published by austinksmith about 9 years ago
Resolves remaining blob creation memory issues in IE11
Improved memory management, single blob creation per session
Reduced dom overhead and interaction, single dom element & interaction per session
Improved thread creation performance & library startup
Reduced library variable size and complexity
Removed browser specific tweaks, rely on browser manufacturers to optimize structured cloning algorithms
Improved general performance