项目简介
MonteCarloPi是一个用于对Arduino进行基准测试的库,借助蒙特卡洛方法来估算π值。此库可在单核心Arduino(像UNO)和多核心Arduino(如ESP32)上使用,虽然它并非估算或计算π值的最有效方式,但在基准测试方面效果出色。
项目的主要特性和功能
特性
- 支持单线程和多线程基准测试,能在不同类型的Arduino设备上运行。
- 可自定义随机数种子,保证测试结果的一致性。
- 提供多种估算模式,如指定循环次数和指定小数精度。
功能
piLoop
:指定循环次数来估算π值。piToDP
:重复估算直至达到指定的小数精度。runOnce
:生成一个随机点并更新相关数据。- 计时功能:通过
startTimer
、stopTimer
和getTime
函数测量基准测试时间。
安装使用步骤
安装
若你已下载本项目的源码文件,将相关文件添加到你的Arduino项目中即可。
使用
单线程示例
```cpp
include
MonteCarloPi myPi;
void setup() { Serial.begin(9600); myPi.startTimer(); double pi = myPi.piLoop(500000); // 循环500000次 myPi.stopTimer();
Serial.print("Estimated Pi: "); Serial.println(pi); Serial.print("Time taken: "); Serial.print(myPi.getTime()); Serial.println(" ms");
myPi.reset(); myPi.reseed();
myPi.startTimer(); pi = myPi.piToDP(4); // 估算到4位小数精度 myPi.stopTimer();
Serial.print("Estimated Pi: "); Serial.println(pi); Serial.print("Time taken: "); Serial.print(myPi.getTime()); Serial.println(" ms"); }
void loop() { // 无需操作 } ```
多线程示例(ESP32)
参考库中提供的ESP32示例代码,使用freeRTOS创建和管理多个任务进行基准测试。注意合理设置ticketChunk
值以平衡性能。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】