我目前正在尝试创建一个用C#XNA编写的比特币矿工。
https://github.com/Generalkidd/XNAMiner
现在的问题是,Miner的实际数字运算似乎占用了太多的CPU时间,因此,程序的UI在发布时几乎冻结,尽管我确实相信计算仍在后台进行尽管窗户被冻结而且没有反应。我尝试实现Aphid的ParallelTasks库,并将一些for循环迁移到另一个线程中。我没有完全理解这些并行for循环如何工作,因此我创建的版本没有正确迭代,但是,程序确实加速了很多。还剩下几个for循环以及一堆foreach循环。
优化代码的最简单,最有效的方法是什么?我应该尝试将每个循环移动到自己的线程中吗?或者尝试将整个方法移动到自己的线程中?或者是否可以使用GPU进行这些计算(考虑到CPU挖掘的状态,它最终会更好)。
答案 0 :(得分:0)
我希望你这样做是为了教育工作,因为自2011年以来CPU / GPU挖掘已经过时。即使使用免费电力,你也几乎无法进行硬件投资。 ASIC现在是采矿业的新事物。