The problem might not be on `mono` or `dotnet run`. Its because Linux's library resolution is retard. Specially the `ld.so`, that is were most of the slowness comes from! I benchmark one program, its a big big program by the way, and `ld.so` resolution takes up about 80% of the 30min-1hr runtime! F** who designed the `ld.so`, its so retard! Now for mono, somebody got to find its "ld.so" counterpart and fix it! :)