Async fitness and functions caller functions#7
Open
albanm wants to merge 6 commits intosubprotocol:masterfrom
Open
Async fitness and functions caller functions#7albanm wants to merge 6 commits intosubprotocol:masterfrom
albanm wants to merge 6 commits intosubprotocol:masterfrom
Conversation
…y for performance
|
For those looking for async support, I've forked this repo and rewrote it in TypeScript and added support for async fitness method (including unit tests): https://github.com/Glavin001/genetic-js |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is actually some quite large modification. I am not sure you will be interested, but I think it is worth proposing.
First, I noticed that when running without web workers the page freezes, this is because everything is synchronous and genetic-js never releases the process. Making the fitness async with optional callback passing makes it possible to use at least a setTimeout. The page still lags of course, but it doesn't freeze.
Second, I needed to do some work with the DOM in my fitness function, but I still wanted to use web workers otherwise. So I used messages to simulate running functions in the worker that are actually in the caller context. It works well for me.