I am a newbie chess programmer and not so expert in programming as well. (Most of my programming is in web technologies)
I am trying to write a chess program to understand how to code using techniques which efficiently increases the performance.
I have about 5 years of coding experience in C# .NET and I am writing the chess engine in C# as well.
Currently I have written a chess program and in that I have tried to implement known ideas.
As of now it provides correct perft results and when compiled in release mode, it provides about 14-15M nps.
I don't know where but there are .NET chess engines which do much better than this and are about 40-50M nps.
I profiled my code (Instrumentation profiling) and didn't find much, or not able to read the report correctly. One thing for sure realized, inlining everything decreases the performance.
I have used structs as data structure for Move with an intention of having the memory allocated on stack rather than heap.
I would like to request the community to share with me, what is wrongly being done in my code base which is resulting in the gap.
Please find the link to my code base here : https://github.com/frankcastle64/Hansel ... tialCommit
Thanks and have a great day ahead.
