你听说过什么是代码本吗? (幽兰代码本初体验)

笔记本几乎是人手必备的生产力工具,你也许知道笔记本分为轻薄本、全能本、游戏本,但是代码本你听说过吗? 最近有幸收到格蠹科技发来的幽兰代码本,以下是我对该笔记本的初体验。

一、什么是幽兰代码本?

你听说过什么是代码本吗? (幽兰代码本初体验)_第1张图片
幽兰代码本是格蠹科技专门为程序员打造的移动计算平台, 基于ARM架构的硬件设计,旨在彻底改变长期以来的交叉编译模式,为程序员提供本地化的开发和调试环境, 让他们可以在本机编写代码、在本机进行构建,并且在本机进行调试。

代码本配置:

你听说过什么是代码本吗? (幽兰代码本初体验)_第2张图片

  • 瑞芯微公司新推出的RK3588 SoC芯片为核心硬件
  • 内置多种功能强大的嵌入式硬件引擎,支持8K@60fps 的 H.265 和 VP9 解码器、 8K@30fps 的 H.264 解码器和 4K@60fps 的 AV1 解码器;支持 8K30fps 的 H.264 和H.265 编码器, 高质量的 JPEG 编码器/解码器,专门的图像预处理器和后处理器。
  • 内置 3D GPU,兼容 OpenGL ES1.1/2.0/3.2、OpenCL 2.2 和 Vulkan 1.2。 带有 MMU 的特殊 2D 硬件引擎将最大限度地提高显示性能,并提供流畅的操作体验。
  • 内置瑞芯微自研的48M像素 ISP(图像信号处理器),支持实现众多算法加速器, 如 HDR、 3A、LSC、3DNR、2DNR、锐化、去雾、鱼眼校正、伽马校正等。
  • 高算力 NPU 可支持 INT4/INT8/INT16/FP16 混合运算,其强大的兼容性, 可以轻松转换基于TensorFlow / MXNet/PyTorch/Caffe 等一系列框架的网络模型。
  • 具有高性能的 4 通道外部存储器接口(LPDDR4/LPDDR4X/LPDDR5),能够支持苛刻的存储器带宽。
  • 详细配置访问

二、代码本外观

你听说过什么是代码本吗? (幽兰代码本初体验)_第3张图片
你听说过什么是代码本吗? (幽兰代码本初体验)_第4张图片

  • 工艺设计:指笔记本的整体设计和制造工艺,包括外观的平滑、线条流畅、色彩搭配采用深灰色与黑色的经典组合。
  • 轻薄:笔记本的重量和厚度与轻薄本类似,轻薄程度高的笔记本给人一种时尚感和便携性。
  • 材质和质感:笔记本的材质是磨砂材质,既美观又提升了手感。
  • 接口丰富 : 有type-c接口,HDMI,USB接口*2,耳机接口,充电口,电源显示灯。

三、体验 & 性能测试

日常使用

以下截图均来自幽兰代码本 。

主界面 (可以通过设置进行快速的更换):

终端

首先使用Ctrl+Alt+T键盘快捷键或单击终端图标,打开终端。

  • 可以看到笔记本的操作系统是ubuntu 23.04版本
  • 对终端一些采用命令进行试用,程序切换流畅。

浏览器下载

  • 通过命令行apt install firefox直接下载FireFox浏览器 , 方便后面环境配置。

视频功能

在幽兰代码本观看视频:

下图是在幽兰代码本播放的是在幽兰上使用“二指禅”_哔哩哔哩_bilibili, 可以通过使用俩个手指来实现鼠标滚轮的操作,很容易操作,有了它就完全不需要鼠标了。

PDF 阅读

  • 幽兰代码本的PDF阅读器功能非常强大, 支持标签、索引、高亮、夜间模式、编辑、幻灯片呈现、连续阅读、双页阅读等功能。

  • 夜间模式 : 这个功能阅读pdf很舒服,看久眼睛不酸,我平时用的PDF软件都很少有这个功能

  • 高亮功能:

你听说过什么是代码本吗? (幽兰代码本初体验)_第5张图片

续航

  • 电源模式 支持均衡模式和节点模式, 满电量的话基本可以使用一天,相对于是轻薄本的俩倍续航。

性能测试

下面将对我的轻薄本(华硕无畏Pro14 售价4999) 与 幽兰代码本进行CPUGPU进行一些简单的测试对比

你听说过什么是代码本吗? (幽兰代码本初体验)_第6张图片

CPU测试:

  • cpu测试——轻薄本
cpt@LAPTOP-B2GKPKJG:~$ sysbench cpu --cpu-max-prime=20000 --threads=2 run  // 素数上限2万,默认10秒,2个线程
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 2 // 指定2个线程
Initializing random number generator from current time


Prime numbers limit: 20000  // 每个线程产生的素数上限均为2万个

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  3519.70

General statistics:
    total time:                          10.0004s   // 共耗时10秒  单个线程
    total number of events:              35200  // 10秒内所有线程一共完成了35200次event

Latency (ms):
         min:                                    0.53
         avg:                                    0.57
         max:                                    1.43
         95th percentile:                        0.97
         sum:                                19990.67  // 俩个线程花费 总时间

Threads fairness:
    events (avg/stddev):           17600.0000/8.00
    execution time (avg/stddev):   9.9953/0.00
  • 幽兰代码本
geduer@ulan:~$ sysbench cpu --cpu-max-prime=20000 --threads=2 run  // 素数上限2万,默认10秒,2个线程
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 2  // 指定2个线程
Initializing random number generator from current time


Prime numbers limit: 20000// 每个线程产生的素数上限均为2万个

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1948.42

General statistics:
    total time:                          10.0007s// 共耗时10秒  单个线程
    total number of events:              19490  // 10秒内所有线程一共完成了19490次event

Latency (ms):
         min:                                    1.02
         avg:                                    1.03
         max:                                   11.81
         95th percentile:                        1.03
         sum:                                19995.41  // 俩个线程花费 总时间

Threads fairness:
    events (avg/stddev):           9745.0000/23.00
    execution time (avg/stddev):   9.9977/0.00

GPU测试:

我用的是glmark2GPU进行测试
glmark2 是开源的对OpenGL 2.0 ES 2.0的基准测试程序,一般用来对GPU进行基准测试。glmark提供了一系列丰富的测试,涉及图形单元性能(缓冲,建筑,照明,纹理等)的不同方面,允许进行更全面和有意义的测试。 每次测试进行10秒,并且单独计算帧速率。

  • 轻薄本——glmark2跑分 :
cpt@LAPTOP-B2GKPKJG:~$ glmark2
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     Microsoft Corporation
    GL_RENDERER:   D3D12 (AMD Radeon(TM) Graphics)
    GL_VERSION:    3.1 Mesa 21.2.6
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false:
 FPS: 909 FrameTime: 1.100 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=true: FPS: 993 FrameTime: 1.007 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=nearest: FPS: 962 FrameTime: 1.040 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=linear: FPS: 922 FrameTime: 1.085 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=mipmap: FPS: 979 FrameTime: 1.021 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=gouraud: FPS: 961 FrameTime: 1.041 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=blinn-phong-inf: FPS: 949 FrameTime: 1.054 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=phong: FPS: 977 FrameTime: 1.024 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=cel: FPS: 971 FrameTime: 1.030 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=high-poly: FPS: 946 FrameTime: 1.057 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=normals: FPS: 1021 FrameTime: 0.979 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=height: FPS: 1018 FrameTime: 0.982 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 976 FrameTime: 1.025 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 757 FrameTime: 1.321 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[pulsar] light=false:quads=5:texture=false:
 FPS: 889 FrameTime: 1.125 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4:
 FPS: 744 FrameTime: 1.344 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] effect=shadow:windows=4: FPS: 701 FrameTime: 1.427 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 557 FrameTime: 1.795 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 572 FrameTime: 1.748 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 626 FrameTime: 1.597 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[ideas] speed=duration: FPS: 534 FrameTime: 1.873 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[jellyfish] <default>: FPS: 805 FrameTime: 1.242 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[terrain] <default>: FPS: 211 FrameTime: 4.739 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shadow] <default>: FPS: 796 FrameTime: 1.256 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[refract] <default>: FPS: 344 FrameTime: 2.907 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 904 FrameTime: 1.106 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 854 FrameTime: 1.171 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 927 FrameTime: 1.079 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=low:fragment-steps=5: FPS: 886 FrameTime: 1.129 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=medium:fragment-steps=5: FPS: 904 FrameTime: 1.106 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 909 FrameTime: 1.100 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 909 FrameTime: 1.100 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 959 FrameTime: 1.043 ms
=======================================================
                                  glmark2 Score: 829
=======================================================
  • 幽兰代码本——glmark2跑分 :
geduer@ulan:~$ glmark2-wayland
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     Panfrost
    GL_RENDERER:   Mali-G610 (Panfrost)
    GL_VERSION:    3.0 Mesa 23.0.0-devel (git-120202c675)
=======================================================
[build] use-vbo=false: FPS: 1462 FrameTime: 0.684 ms
[build] use-vbo=true: FPS: 1813 FrameTime: 0.552 ms
[texture] texture-filter=nearest: FPS: 1825 FrameTime: 0.548 ms
[texture] texture-filter=linear: FPS: 1759 FrameTime: 0.569 ms
[texture] texture-filter=mipmap: FPS: 1350 FrameTime: 0.741 ms
[shading] shading=gouraud: FPS: 1374 FrameTime: 0.728 ms
[shading] shading=blinn-phong-inf: FPS: 1308 FrameTime: 0.765 ms
[shading] shading=phong: FPS: 1299 FrameTime: 0.770 ms
[shading] shading=cel: FPS: 1224 FrameTime: 0.817 ms
[bump] bump-render=high-poly: FPS: 873 FrameTime: 1.145 ms
[bump] bump-render=normals: FPS: 1549 FrameTime: 0.646 ms
[bump] bump-render=height: FPS: 1422 FrameTime: 0.703 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1510 FrameTime: 0.662 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 841 FrameTime: 1.189 ms
[pulsar] light=false:quads=5:texture=false: FPS: 2075 FrameTime: 0.482 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 315 FrameTime: 3.175 ms
[desktop] effect=shadow:windows=4: FPS: 825 FrameTime: 1.212 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 296 FrameTime: 3.378 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 253 FrameTime: 3.953 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 277 FrameTime: 3.610 ms
[ideas] speed=duration: FPS: 615 FrameTime: 1.626 ms
[jellyfish] <default>: FPS: 1028 FrameTime: 0.973 ms
[terrain] <default>: FPS: 72 FrameTime: 13.889 ms
[shadow] <default>: FPS: 725 FrameTime: 1.379 ms
[refract] <default>: FPS: 272 FrameTime: 3.676 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 2024 FrameTime: 0.494 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1566 FrameTime: 0.639 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 2256 FrameTime: 0.443 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1643 FrameTime: 0.609 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1337 FrameTime: 0.748 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1911 FrameTime: 0.523 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 2176 FrameTime: 0.460 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1660 FrameTime: 0.602 ms
=======================================================
                                  glmark2 Score: 1240 
=======================================================

四、总结 & 评价

优势:

  • 接口丰富。
  • Linux环境,方便学习工作使用。
  • 续航能力强,3小时电量仅用33%的电量。
  • 键程合适、反馈力度敏捷。
  • 触摸板是摩擦材质,触感灵敏,防指纹。
  • 性价比高,售价只需3588。
  • 外观极简,颜值高,手感好。

使用人群:

  • 在ARM平台上从事开发工作的软件工程师或者希望学习ARM架构的研究者
  • 开发LINUX系统软件或者应用软件的程序员、测试工程师或者软件安全研究者
  • 学习和钻研计算机软硬件原理的大中院校学生和教师

以上就是我对幽兰代码本的初体验,如果你还想了解更多可以访问幽兰代码本 以及 幽兰代码本使用教程

你可能感兴趣的:(服务器,linux,笔记本电脑,编辑器,c++,硬件架构,c语言)