我写了一个在C#中处理字符串的程序部分。我最初选择C#不仅因为使用.NET的数据结构更容易,而且因为我需要使用这个程序分析数据库中的大约2-3百万个文本记录,并且使用C#连接到数据库更加容易。
程序中有一部分导致整个代码速度变慢,所以我决定重新用C语言编写这一部分,使用指针来访问字符串中的每个字符,现在这部分代码只需要5秒就可以完成10,000,000个字符串的分析,而之前使用C#时需要119秒!性能是关键,所以我正在考虑将整个程序重写为C语言,将其编译为dll(当我开始编写程序时我不知道如何这样做),并使用从C#调用DllImport方法来使用该dll的方法处理数据库字符串。
鉴于重写整个程序需要一些时间,而使用DllImport来处理C#字符串需要进行类似封送等操作,我的问题是:使用C dll更快的字符串处理性能是否超过从C#反复调用该dll所需的性能损耗?