Linux的bc命令计算π的值预估系统算力

这是今天突然想到的一个事情,几年前我和一个朋友做一个开发板,然后我们需要完成的这个开发板有算力的要求,当时我们测试的时候就用了一个shell脚本来分析系统的算力。今天我突然想不起这个命令,然后就想写篇文章记录下,可能以后会有需要。

先说下bc这个指令,这是一个算数指令,可以用来做算数的。

paul@ubuntu:~$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
4 + 5
9

然后如果要计算除法的时候,可以用scale来指定小数点的位数。

paul@ubuntu:~$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=4
1/5
.2000

然后,我们看看如果计算π呢?

看下面的图片

eb89dbd3b59cf7700d29d15060b99bb0.png

然后我们用shell脚本来计算π。

我在一个16核的CPU中运行,结果如下

pual@ubuntu:~$ time echo "scale=2000;4*a(1)"|bc -l
3.141592653589793238462643383279502884197169399375105820974944592307\
81640628620899862803482534211706798214808651328230664709384460955058\
22317253594081284811174502841027019385211055596446229489549303819644\
28810975665933446128475648233786783165271201909145648566923460348610\
45432664821339360726024914127372458700660631558817488152092096282925\
40917153643678925903600113305305488204665213841469519415116094330572\
70365759591953092186117381932611793105118548074462379962749567351885\
75272489122793818301194912983367336244065664308602139494639522473719\
07021798609437027705392171762931767523846748184676694051320005681271\
45263560827785771342757789609173637178721468440901224953430146549585\
37105079227968925892354201995611212902196086403441815981362977477130\
99605187072113499999983729780499510597317328160963185950244594553469\
08302642522308253344685035261931188171010003137838752886587533208381\
42061717766914730359825349042875546873115956286388235378759375195778\
18577805321712268066130019278766111959092164201989380952572010654858\
63278865936153381827968230301952035301852968995773622599413891249721\
77528347913151557485724245415069595082953311686172785588907509838175\
46374649393192550604009277016711390098488240128583616035637076601047\
10181942955596198946767837449448255379774726847104047534646208046684\
25906949129331367702898915210475216205696602405803815019351125338243\
00355876402474964732639141992726042699227967823547816360093417216412\
19924586315030286182974555706749838505494588586926995690927210797509\
30295532116534498720275596023648066549911988183479775356636980742654\
25278625518184175746728909777727938000816470600161452491921732172147\
72350141441973568548161361157352552133475741849468438523323907394143\
33454776241686251898356948556209921922218427255025425688767179049460\
16534668049886272327917860857843838279679766814541009538837863609506\
80064225125205117392984896084128488626945604241965285022210661186306\
74427862203919494504712371378696095636437191728746776465757396241389\
086583264599581339047802759008real    0m1.678s
user 0m1.676s
sys 0m0.000s
crisqifa@ubuntu:~$

然后我再另一个嵌入式设备运行

rockchip # cat 1.sh
echo "scale=2000;4*a(1)"|bc -l
rockchip # time -p ./1.sh
3.141592653589793238462643383279502884197169399375105820974944592307\
81640628620899862803482534211706798214808651328230664709384460955058\
22317253594081284811174502841027019385211055596446229489549303819644\
28810975665933446128475648233786783165271201909145648566923460348610\
45432664821339360726024914127372458700660631558817488152092096282925\
40917153643678925903600113305305488204665213841469519415116094330572\
70365759591953092186117381932611793105118548074462379962749567351885\
75272489122793818301194912983367336244065664308602139494639522473719\
07021798609437027705392171762931767523846748184676694051320005681271\
45263560827785771342757789609173637178721468440901224953430146549585\
37105079227968925892354201995611212902196086403441815981362977477130\
99605187072113499999983729780499510597317328160963185950244594553469\
08302642522308253344685035261931188171010003137838752886587533208381\
42061717766914730359825349042875546873115956286388235378759375195778\
18577805321712268066130019278766111959092164201989380952572010654858\
63278865936153381827968230301952035301852968995773622599413891249721\
77528347913151557485724245415069595082953311686172785588907509838175\
46374649393192550604009277016711390098488240128583616035637076601047\
10181942955596198946767837449448255379774726847104047534646208046684\
25906949129331367702898915210475216205696602405803815019351125338243\
00355876402474964732639141992726042699227967823547816360093417216412\
19924586315030286182974555706749838505494588586926995690927210797509\
30295532116534498720275596023648066549911988183479775356636980742654\
25278625518184175746728909777727938000816470600161452491921732172147\
72350141441973568548161361157352552133475741849468438523323907394143\
33454776241686251898356948556209921922218427255025425688767179049460\
16534668049886272327917860857843838279679766814541009538837863609506\
80064225125205117392984896084128488626945604241965285022210661186306\
74427862203919494504712371378696095636437191728746776465757396241389\
086583264599581339047802759008
real 11.72
user 11.43
sys 0.00

下面这个是一个4核的设备,可以明显看到差距,下面的设备运行的时间非常长。

欢迎大家在评论区贴出自己的设备运行时间,运行的时候注意看看提示,有的设备可能没有安装bc指令,比如像安卓的系统,这个指令可能是没有的。

786dcface765bacb8eb3b2ad9e76e9b1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hotmail在outlook2007中的设置

在姓名中输入你的名字(用户可自定义),在电子邮件地址中输入你要设置OutLook的电子邮件地址,账户类型设为POP3,接收邮件服务器为pop3.live.com,发送邮件服务器为smtp.live.com。在用户名中输入你的邮箱用户名…

第九章 图形用户界面的并行化(待续)

为什么GUI是单线程的转载于:https://www.cnblogs.com/hzzjj/p/9825864.html

SQL版DNN的安装心得

最重要的是,DNN必须在WEB HOST 的根目录。中国RainBow提醒的。这是装成的关键!另外的主要两个问题,一是CONNECTIONSTRING中的PWD有&符号,出错。通过SQL 的企业管理器登陆REMOTE SQL SERVER修改PASSWORD。(应该试一试 Integrated Security…

面向对象的思想是什么?

我同事的回答,我觉得这句话可以读十遍说下我自己的理解你不是人,你是猪。解释一下我们在编写面向对象的代码时,一定要有抽象的思想,什么是抽象,抽象是一种概念的东西,不是实实在在的,看不见摸不…

java 数组正则表达式_java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】...

本文实例讲述了java正则表达式实现提取需要的字符并放入数组。分享给大家供大家参考,具体如下:这里演示java正则表达式提取需要的字符并放入数组,即arraylist数组去重复功能。具体代码如下:package com.test.tool;import java.uti…

多线程(三)

38) 如何在Java中创建Immutable对象?要创建不可变类,要实现下面几个步骤:(1)、通过构造方法初始化所有成员;(2)、对变量不要提供set方法;(3)、将所有的成员声明为私有的,这样就不允许直接访问这些成员&…

安装SQL2005只有配置工具或 错误码是29506 解决方案

在windows7下安装SQL2005时会提示不兼容,需要安装SQL2005 SP3或更高的版本,不用管它,一路安装下去,等装完在开始菜单没有SQL Server Management Studio。 没关系,只要下载微软的“SQL Server Management Studio Expres…

第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...

目录 手册地址:before_insert(新增之前的操作)要实现的功能思路触发条件:1. 控制器里必须要调用模型的save()方式保存数据,用insert()触发不了勾子函数的2. 模型初使化init()里使用 Goods::beforeInsert手册地址: https://www.kancloud.cn/manual/thinkphp5/135195 before_inse…

python编程格式化输出_Python的三种格式化输出

今天刚学了python的三种格式化输出,以前没接触过这么有趣的输出方式,现在来分享一下。#!/user/bin/env python#coding:utf-8#三种格式化输出#第一种格式化输出nameinput("name:")ageinput("age:")jobinput("job:")salaryi…

年轻,可以不气盛?

昨天和我一个好友电话,因为到了年末,我们互相说一些自己工作上的情况,本来是在微信聊着。我然后说了句,我想跟自己的领导提下建议,因为感觉在这边工作了一段时间,想把自己对工作上的一些看法和领导分享&…

加深昨天的話題,把一些模糊的概念統一一下 日期:2004-05-19。

加深昨天的話題&#xff0c;把一些模糊的概念統一一下 日期:2004-05-19。 <Code 1>unit dmOrderTimeModule; interface uses SysUtils, Variants, Classes, dmBaseModuleImp, hmStrTools, hmSqlTools, hmDateTools, hmTimeTools; type TdmOrderTime class(TBaseDataMo…

多线程的异常捕捉

为什么要单独讲多线程的异常捕捉呢&#xff1f;先看个例子&#xff1a; public class ThreadException implements Runnable{Overridepublic void run() {throw new RuntimeException();}//现象&#xff1a;控制台打印出异常信息&#xff0c;并运行一段时间后才停止public stat…

Linux 安装配置JDK 、 MySQL 、nginx

今天我来讲一下在Linux下各环境的搭建&#xff0c;主要就讲一下jdk、MySQL、和一个代理服务器nginx 1、 jdk的安装配置 1)卸载自带openjdk 当我们拿到一个全新的ECS的时候上面有的会自带一个openjdk&#xff0c;但是我们一般不会用这个&#xff0c;所以在这里我们会先卸载这个自…

Flex与javascript通信

首先列出代码部分&#xff0c;我们可以先尝试的感受一下效果&#xff1a; 1.Flex代码部分&#xff1a;文件名为Flex_Javascript.mxml <?xml version"1.0" encoding"utf-8"?><s:Application xmlns:fx"http://ns.adobe.com/mxml/2009" …

wat java_并发工具优于wati、notify(69)

现在几乎没有理由在使用wait 和 notify&#xff0c;使用高级工具代替java.util.concurrent 包并发工具分三类&#xff1a;Executor 框架并发集合(concurrent Collection)同步器(synchronizer)并发集合对标准集合接口(List、Map、Queue)封装了高性能的并发实现为了提高并发性&am…

一道关于 fork 的笔试题

题目阅读下面的代码&#xff0c;显示终端会打印出几个 hello world&#xff1f;#include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h>int main() {fork();fork();fork();printf("hello world\n");exit(0); }…

最新招聘公司网站 以及学校的宣讲会

http://campusys.chinahr.com/E/unilever/ 联合利华http://www.mckinsey.com/ 麦肯锡http://www.asap.net.cn/ 信杰 http://guangzhouhonda.51job.com/grad.php 广州本田汽车http://www.hanagroup.com/http://www.augmentum.com/http://www.tetrapak.com.cn/welcome2.htm …

小球游戏1

引用&#xff1a;http://www.oschina.net/code/snippet_12_4121 [图片] pic3.jpg [图片] pic4.jpg [代码] [Java]代码 01public class Player extends AnimatedSprite {02...03Override04 protected void onManagedUpdate(final float pSecondsElapsed) {05 super.…

[Swift实际操作]八、实用进阶-(7)使用通知的方法进行对象间的消息传递

本文将为你演示&#xff0c;如何使用Notification Center进行消息的传递。通知中心是一个调度消息通知的类&#xff0c;采用单例设计模式&#xff0c;实现数据传递&#xff0c;回调等功能。首先打开自定义视图的代码文件(CustomView.swift) 1 import UIKit2 //使当前的自定义类…

java怎么调kettle_通过Java调取Kettle的结果集

Kettle端&#xff1a;Data Grid只是测试数据&#xff0c;目的是把数据传递到记录结果。Java端&#xff1a;package com.womai.util;import org.pentaho.di.core.KettleEnvironment;import org.pentaho.di.core.RowMetaAndData;import org.pentaho.di.trans.Trans;import org.pe…