C# 库函数调用非常慢

C# 库函数调用非常慢,c#,dll,garbage-collection,C#,Dll,Garbage Collection,我有一个C应用程序,可以调用另一个C库dll。该库被添加到Visual Studio中“引用”下的C应用程序中。每次调用库时,执行调用的函数中的第一条语句大约需要5秒钟。我不知道为什么要花这么长时间。我的CPU没有使用GBs的空闲RAM 有人能帮助我调试这个问题,并找出是什么原因导致调用函数的延迟吗 编辑:在花了更多的时间在这上面之后,它归结到下面 File1.cs mylib中的File2.cs 因此,在mylib中调用构造函数总是需要4秒钟。我用try…finally替换了using,只使用

我有一个C应用程序,可以调用另一个C库dll。该库被添加到Visual Studio中“引用”下的C应用程序中。每次调用库时,执行调用的函数中的第一条语句大约需要5秒钟。我不知道为什么要花这么长时间。我的CPU没有使用GBs的空闲RAM

有人能帮助我调试这个问题,并找出是什么原因导致调用函数的延迟吗

编辑:在花了更多的时间在这上面之后,它归结到下面

File1.cs mylib中的File2.cs
因此,在mylib中调用构造函数总是需要4秒钟。我用try…finally替换了using,只使用了几条log语句,并注意到构造函数中的第一条log语句是在using station中从File1.cs调用后4秒打印的。

这是因为第一次调用导致JIT将方法编译为本机代码。要事先编译方法,请阅读@gzaxx Op,它说每次调用库大约需要5秒钟的时间来执行。这与JIT有什么关系?函数的参数是什么?序列化/反序列化可能需要那么长的时间。@SriramSakthivel OP还说执行第一条语句需要5秒。@Mad-Sorcher:不管它是否得到函数参数,都是相同的时间。
using mylib;
void showName()
{
    using(log myLog = new log("abc"))
    {
        ...
    }
}
public class log:IDisposable
{
    public log(string name)  
    {
        ...
    }
}