Search Unity

  1. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  2. Want more efficiency in your development work? Sign up to receive weekly tech and creative know-how from Unity experts.
    Dismiss Notice
  3. Participate with students all over the world and build projects to teach people. Join now!
    Dismiss Notice
  4. Build games and experiences that can load instantly and without install. Explore the Project Tiny Preview today!
    Dismiss Notice
  5. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  6. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Unity LINQ (Free)

Discussion in 'Assets and Asset Store' started by sootie8, May 25, 2016.

  1. sootie8

    sootie8

    Joined:
    Mar 25, 2014
    Posts:
    233
    Hi All,

    I've just release a FOS rewrite of LINQ up onto git. I hope to keep this as a community driven project, and perhaps expand it into other aspects of .Net that are either slow due to GC, or flat out do not work due to AOT/IL2CPP.

    https://github.com/sootie8/Unity-LINQ

    Currently most of the LINQ feature set is implemented with significant performance improvements across the board. There are a couple of areas I am looking to improve upon in my next iteration, such as removing the last LINQ dependency with the group-by extension method.

    Anyway thanks for reading, and feel free to make pull requests and/or suggestions below.
     
  2. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,057
    Can you provide some details or links to information as to what problems with LINQ you are solving in terms of Unity usage? I'm not immediately aware, and there may be other users that do not know either.
     
  3. Patico

    Patico

    Joined:
    May 21, 2013
    Posts:
    886
    Thanks a million!!!
     
  4. sootie8

    sootie8

    Joined:
    Mar 25, 2014
    Posts:
    233
    Sure.

    The pure performance issue (usually a problem on mobile / web platforms in general) is caused by Unity's garbage collector as far as I am aware. Specifically It all revolves around the allocation of the iterator object with IEnumerable interface, which for some reason is even slower than doing a standard for loop and assigning a variable yourself to be like the iterator.

    There are a ton of posts out there from disgruntled developers, and a fair bit of information on the topic on google.

    In terms of the AOT/IL2CPP issues, I believe Unity themselves have said they do support 100% of the LINQ feature set at the moment. This is ideally where I would like to further expand the project into solving, along side the performance improvements.

    I will put some performance comparison charts up in the near future. The initial testing I did gave very significant (like 30% +) improvements in performance at 'stress scales'.
     
    Last edited: May 25, 2016
    aer0ace likes this.