How can I calculate how many hashes I generate per second?
I have a function which generates hashes from a string:
string GenerateHash(string plainText);
I generate as many hashes as possible with 4 threads.
How do I calculate how many hashes (or megahashes) I generate per second?
Your problem breaks down nicely into 3 separate tasks
- Sharing a single count variable across threads
- Benchmarking thread completion time
- Calculating hashes per/second
Sharing a single count variable across threads
public static class GlobalCounter
{ public static int Value { get;
private set;
} public static void Increment()
{ Value =GetNextValue(Value);
} private static int GetNextValue(int curValue) { returnInterlocked.Increment(ref curValue);
} public static void Reset() { Value = 0; } }
Before you spin off the threads call GlobalCounter.Reset
and then in each thread (after each successful hash) you would call GlobalCounter.Increment
– using Interlocked.X
performs atomic operations of Value
in a thread-safe manner, it’s also much faster than lock
.
Benchmarking thread completion time
var sw = Stopwatch.StartNew(); Parallel.ForEach(someCollection, someValue =>
{ // generate hash GlobalCounter.Increment();
}); sw.Stop();
Parallel.ForEach
will block until all threads have finished
Calculating hashes per second
... sw.Stop(); var hashesPerSecond = GlobalCounter.Value / sw.Elapsed.Seconds;
Did you find this article helpful?
If so, please consider a donation to help the evolution and development of more helpful articles in the future, and show your support for alternative articles.
Your generosity is 💚 ly appreciated
You can donate in any crypto your 💚 desires 😊
Thank you all for your time !!!
✌ & 💚
Bitcoin (BTC) :
1P1tTNFGRZabK65RhqQxVmcMDHQeRX9dJJ
LiteCoin(LTC) :
LYAdiSpsTJ36EWCJ5HF9EGy9iWGCwoLhed
Ethereum(ETH) :
0x602e8Ca3984943cef57850BBD58b5D0A6677D856
EthereumClassic(ETC) :
0x602e8Ca3984943cef57850BBD58b5D0A6677D856
Cardano(ADA)
addr1q88c5cccnrqy6xesszzvf7rd4tcz87klt0m0h6uvltywqe8txwmsrrqdnpq27594tyn9vz59zv0n8367lvyc2atvrzvqlvdm9d
BinanceCoin(BNB)
bnb1wwfnkzs34knsrv2g026t458l0mwp5a3tykeylx
BitcoinCash (BCH)
1P1tTNFGRZabK65RhqQxVmcMDHQeRX9dJJ
BitcoinSV(BSV)
1P1tTNFGRZabK65RhqQxVmcMDHQeRX9dJJ
ZCash(ZEC)
t1fSSQX4gEhove9ngcvFafQaMPq5dtNNsNF
Dash(DASH)
XcWmbFw1VmxEPxvF9CWdjzKXwPyDTrbMwj
Shiba(SHIB)
0x602e8Ca3984943cef57850BBD58b5D0A6677D856
Tron(TRX)
TCsJJkqt9xk1QZWQ8HqZHnqexR15TEowk8
Stellar(XLM)
GBL4UKPHP2SXZ6Y3PRF3VRI5TLBL6XFUABZCZC7S7KWNSBKCIBGQ2Y54
Made with 💚 by Free Spirit
✌ & 💚
- Learn about Inflation Folks!What Is Inflation? Inflation is a rise in prices, which can be translated as the decline of purchasing power over time. The rate at which purchasing power drops can be reflected in the average price increase … Continue reading Learn about Inflation Folks!
- Free Spirit’s LibraryHy there my fellow citizens of this amazingly beautiful Mother Earth of… Not Ours !!! We tend to forget that and treat it as if we would have another habitable sphere on wich to live, in … Continue reading Free Spirit’s Library
- What is Bretton Woods ?!?The Bretton Woods Conference, formally known as the United Nations Monetary and Financial Conference, was the gathering of 730 delegates from all 44 Allied nations at the Mount Washington Hotel, situated in Bretton Woods, New Hampshire, … Continue reading What is Bretton Woods ?!?
- Smart Contracts by Nick Szabo-1994A smart contract is a computerized transaction protocol that executes the terms of a contract. The general objectives of smart contract design are to satisfy common contractual conditions (such as payment terms, liens, confidentiality, and even … Continue reading Smart Contracts by Nick Szabo-1994
- 20 Security Rules for bitcoin20 Rules for Security in bitcoin Here’s a short list of common sense Rules, to use and implement for a better Security while using bitcoin and other cryptocurrencies. In the hopes that they are quite self-explanatory … Continue reading 20 Security Rules for bitcoin