我理解不安全的代码更适合访问Windows API之类的东西并进行不安全的类型转换,而不是编写更高性能的代码,但我想问你是否注意到使用它时在实际应用程序中有任何显着的性能改进与安全的c#代码相比.
我正在编写一个C#应用程序,需要在启动时读取大约130,000(String,Int32)对到Dictionary.这些对存储在.txt文件中,因此很容易被任何人修改,这在上下文中是危险的.我想问一下是否有办法保存这个词典,以便可以合理安全地存储信息,而不会在启动时失去性能.我尝试过使用BinaryFormatter,但问题是原始程序在启动时需要125ms到250ms来读取txt中的信息并构建字典,反序列化生成的二进制文件需要2s,这本身并不太多但与原始性能相比,速度降低了8-16倍.
注意:加密很重要,但最重要的应该是从磁盘保存和读取字典的方法 - 可能来自二进制文件 - 而不必在每一行上使用Convert.ToInt32,从而提高性能.
我写了一个程序,它在C#中的字符串一些繁重的工作的一部分.我最初选择C#,不仅因为它更容易使用.NET的数据结构,还因为我需要使用这个程序来分析数据库中的一些2-3万的文字记录,它是非常容易使用C#连接到数据库.
人们普遍认为是拖慢整个代码程序的一部分,我决定使用指针在字符串中使用每一个字符重写它的C,并且采取了一些119秒来分析10,000,000字符串代码现在的一部分C#只需5秒即可获得C代码!性能是当务之急,所以我正在考虑用C重写整个程序,它编译成DLL(一些东西,我不知道该怎么办时,我开始写程序),使用的DllImport从C#中使用它的方法工作用数据库字符串.
考虑到重写整个程序需要一些时间,而且因为使用DllImport来处理C#的字符串需要编组等等,我的问题是C dll更快的字符串处理带来的性能提升是否会超过必须重复编组字符串的性能损失从C#访问C dll?
任何人都可以告诉我IDENTITY NOT NULL创建表的指令是否多余?我的意思是,从消息来判断
DEFAULT或NULL不允许作为显式标识值.
我会说声明的任何列IDENTITY都是隐式声明的NOT NULL,但我想确定.有人可以确认吗?
非常感谢你.
早上好,
我正在编写一个拼写检查程序,对于这种情况,它是性能关键的.既然如此,由于我打算连接到数据库并使用C#创建GUI,我在C中编写了一个编辑距离计算例程,并编译为我在C#中使用的DLL DllImport.问题是,我认为(虽然我可能是错误的),其编组字一个一个从String到char *导致大量的开销.就是这样,我考虑使用C++/CLI以便我可以String直接使用.NET中的类型...我的问题是,C++/CLI性能如何与用于繁重数学计算和数组访问的本机C代码相比较?
非常感谢你.
下午好,
你如何将十进制字符串转换成一个二进制字符串,其中包含的字符多于语言最大整数类型中的位数?换句话说,假设你有字符串
111001101001110100100(...)1001001111011100100
Run Code Online (Sandbox Code Playgroud)
并且你不能先将它转换为整数,你将如何在10中写入它?
非常感谢你.
下午好,
这可能听起来像一个愚蠢的问题,但如果有办法解决这个问题会非常有用......有什么方法可以在C#中获得自定义位深度整数(例如,20位整数)?
非常感谢你.
我目前正在根据这个建议实现字符串和枚举的关联.就是这样,我有一个Description与每个枚举元素相关联的属性.在该页面上还有一个函数,它根据给定的枚举返回描述的字符串.我现在要实现的是反向函数,也就是说,给定一个输入字符串查找带有相应描述的枚举(如果存在),否则返回null.
我试过了,(T) Enum.Parse(typeof(T), "teststring")但它抛出异常.
有谁知道在C#中有任何好的NFA和DFA实现,可能实现两者之间的转换?我希望能够构建一个NFA,然后将其自动转换为DFA,但无需编写我自己的代码,这将花费很长时间.有这个 Python代码,也许我可以使用并使用IronPython与C#集成,但Python很慢.