本版
查看: 16702|回复: 18

CPU Test Scala3版

[复制链接]

[Lv.7]特大萝卜

兴趣使然的鸽~

楼主(1#)
发表于 2023-7-27 20:58:07 | 只看该作者 |只看大图 |倒序浏览 |阅读模式
本帖最后由 AkiPolaris 于 2023-7-27 20:58 编辑

看到@ATP 和 @爱电脑的昕宇 都在发CPU Test。
爱电脑的昕宇的Python版:暑假收官之作:CPU测速工具V2.0 java版 : CPU Test Java版(我的第一个Java小程序!)
ATP的C 版 改编:CPU测速工具V2.0

恰好我最近在学Scala3,于是也以此为Flag用Scala3模仿着写了一个CPU Test。
Scala3是一个运行于jvm上的,具有面向对象和函数式特性的高级语言,其具有完善的类型推断特性,函数式语言的函数对象,也具有gc等jvm相关的特性。
当然,scala基于jvm,其运行效率比java略低,但亦有其开发效率高、函数式编程等特征。

由于scala的编程思路不同于Java等语言,因此虽然总体思路相似,但在测试细节上与上面二位有所不同,因此分数无法直接比较。
同时运行该测试需要scala环境(相应的也要java环境)。

以下是运行测试时对cpu的使用情况:

以下是程序运行过程:

以下是主程序源码:
  1. import java.util.Date
    import scala.io.StdIn.readInt
    @main def Main() =
    def choose() = //选项
    welcome()
    try
    readInt() match
    case 1 => (1,test())
    case 2 => (2,about())
    case 3 => (3,())
    case _: Int => (0,println("无效命令"))
    catch
    case nfe: NumberFormatException => println("请只输入数字")

    def about() =
    println("""|这是一个简易CPU性能测试工具,也是我的第一个用Scala3编写的小程序。
    |获取python版:https://social.luobotou.org/thread-52933-1-1.html
    |获取Java版:https://bbs.luobotou.org/thread-55094-1-1.html
    |由@ATP编写的C版:https://social.luobotou.org/thread-55087-1-1.html
    |注意:由于编程语言的差异,以上版本的成绩之间没有可比性!
    |""".stripMargin)

    def welcome() =
    println("""CPU Test Scala V1.0 By AkiPolaris
    |成绩仅图一乐awa
    |请选择模式:「1」 测试 「2」功能 「3」退出
    |""".stripMargin)

    def time() = Date().getTime()

    def test() = //测试方法
    val list = (1L to 1_000_000_000L) //从1加到10^9
    val startTime = time()
    val cnt = list.reduce(_ + _)
    val endTime = time()
    val score = 1_000_000_000L/(endTime - startTime)
    println(s"分数为:$score")

    while choose() != (3,())
    do ()


以下是打包过程:


以下是jar包(没错,是jar)
cputest_3-0.1.0-SNAPSHOT.jar
咕咕咕,博客向天鸽,
整活凭兴趣,知识不太多。
回复

支持 | 反对  0 支持 / 0 反对 评分 举报

Super Moderator

需站内投广、测品等,请走站内信联系我。

沙发(2#)
发表于 2023-7-27 22:42:23 | 只看该作者
界面好看。
就是依赖的运行环境有点要求。

[Lv.7]特大萝卜

兴趣使然的鸽~

板凳(3#)
 楼主| 发表于 2023-7-28 10:18:56 来自手机 | 只看该作者
OOO 发表于 2023-7-27 22:42
界面好看。
就是依赖的运行环境有点要求。

这个界面,是gnome shell的默认配置之一,加上我用的是fish作为命令行,就成这样了。
至于运行环境,只能说不带环境的打包是这样的,而且scala对于个人用户确实接触不到(像java还有mc等游戏/软件的推广),但目前我没找到自带环境的打包方法。

Super Moderator

IT爱好者

地板(4#)
发表于 2023-7-28 11:46:42 | 只看该作者
AkiPolaris 发表于 2023-7-28 10:18
这个界面,是gnome shell的默认配置之一,加上我用的是fish作为命令行,就成这样了。
至于运行环境,只能 ...

啊哈我也喜欢用fish做命令行

Super Moderator

实习版主

5#
发表于 2023-7-28 13:10:56 | 只看该作者
哈哈,编程大赛开始了。

[Lv.8]超级萝卜

躺平王者

6#
发表于 2023-7-28 20:04:39 | 只看该作者
我萝卜论坛人才济济

[Lv.8]超级萝卜

7#
发表于 2023-7-29 06:40:33 来自手机 | 只看该作者
强
真是条条大路通罗马啊

[Lv.5]胡萝卜

8#
发表于 2023-7-29 13:53:40 | 只看该作者
Java库得pip方式安装吧

联系我们(Contact)|手机版|萝卜头IT论坛 ( 苏ICP备15050961号-1 )

GMT+8, 2026-10-19 21:13 , Processed in 0.07 second(s), 20 queries , Gzip On.

快速回复 返回顶部 返回列表