Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

NUKE improvements #1084

Merged
merged 1 commit into from
May 27, 2023
Merged

NUKE improvements #1084

merged 1 commit into from
May 27, 2023

Conversation

lahma
Copy link
Collaborator

@lahma lahma commented May 23, 2023

  • NUKE 7.0.2
  • don't print missing documentation warnings
  • don't build NUKE project as part of solution
  • use also Ubuntu for building (faster builds)
  • skip tests as Appveyour isn't testing either
  • separate workflow for PRs (still same for master build)

NUKE update was done using the latest global tool and running command nuke :update. New GitHub workflow files were generated by running build.cmd, NUKE updated definitions automatically. Maybe at some point could also enable tests when they are green in master 馃槈

@lahma lahma force-pushed the nuke-improvements branch 4 times, most recently from 7c01c4e to 2e0c527 Compare May 23, 2023 05:39
* NUKE 7.0.2
* don't print missing documentation warnings
* don't build NUKE project as part of solution
* use also Ubuntu for building (faster builds)
* skip tests as Appveyour isn't testing either
* separate workflow for PRs (still same for master build)
@lahma lahma marked this pull request as ready for review May 23, 2023 05:59
@tonyqus
Copy link
Member

tonyqus commented May 27, 2023

LGTM

@tonyqus tonyqus merged commit 03ffc15 into nissl-lab:master May 27, 2023
3 checks passed
@lahma lahma deleted the nuke-improvements branch May 28, 2023 06:35
@tonyqus
Copy link
Member

tonyqus commented Jun 2, 2023

image
I see the change. Interesting

@lahma
Copy link
Collaborator Author

lahma commented Jun 2, 2023

The ubuntu runner should generally be the fastest free CI around. Windows is somewhat slower. Ubuntu runner will also make sure that anyone can compile on MacOS and Linux. Appveyr might not be needed anymore if it's only doing builds. NUKE can be customized for many things like building and publishing to NuGet on tag creation etc.

BTW. I read your recent blog post (great writeup!) and now I'm curious if I could make NPOI faster 馃槈

@tonyqus
Copy link
Member

tonyqus commented Jun 2, 2023

now I'm curious if I could make NPOI faster

Definitely, you/we can. But its a huge task I'm afraid. And again, I don't wanna totally replace commercial product created by these rich companies who actually hire developers.

There are two major improvement we can do.

  • Refactor the cell management and support virtual cell management based on range instead of creating real cell clasess for every existing cells. Because this takes too many memory (one class instance per cell is too much). This feature has been implemented in EPPlus several years ago. This can also increase speed of creating/modifying cells.
  • Memory consumption improvement - NPOI still has a few chances to get OOM (more than EPPLus does). This has much space to improve.

Although I do know the improvement direction, my major problem is that I don't wanna put more than 5 days per month on NPOI since it's not profitable. In other words, it's mainly in maintence mode. This can also prevent my wife from complaining too much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants