1
我有我在C#中使用ExecuteScalar()
命令执行一个SQLite查询。 Object
类型变量的结果实际上是Int64类型的值。由于我需要将它转换为Int32,我首先尝试使用Convert.ToInt32
,现在我使用的是(Int32)(Int64)Object
,虽然我在两者上获得了相同的性能。问题是,这种类型的演员似乎需要额外的6ms才能执行,并且所涉及的方法是应该尽可能快地执行的关键代码......有没有什么方法可以更快地执行演员制作,例如使用,位运算符还是其他一些方法?
以防万一这是不可能的,我真的不明白为什么查询的结果是一个Int64 ...有什么办法可以强制它是一个Int32?
非常感谢。
非常感谢。第一个建议起作用,速度提高2-3倍。 – Miguel 2010-10-29 21:09:34
我只提到它,因为我有理由怀疑ExecuteScalar只是创建一个datareader并返回第一行/列中的第一个对象。这意味着它正在做一个额外的拳击操作。差异应该是相当微不足道的,但我想这不是在这种情况下。 6ms似乎是一个非常长的时间来执行双重演员(与隐式转换)在盒装然后unboxed int64。您是否在测试测试装置内测试速度? – wllmsaccnt 2010-10-29 22:35:14