Giter VIP home page Giter VIP logo

benchmark's Introduction

Benchmark (.NET 8)

  • A C# console program displays system specs then lets you run benchmarks on your system.
  • This program will attempt to get your CPU,RAM & GPU specs.
  • You can run a Hashing benchmark with MD5, SHA256 and SHA512.
  • Or an intensive CPU benchmark.
  • Or an encrypt/decrypt benchmark (May need admin privileges)
  • Using BenchmarkDotNet , SharpDX, NvAPIWrapper and Hardware.info

Maintenance

maintenance-status

CI/CD & CodeQL

CI Build CodeQL

Getting Started

  • Install .NET 8 SDK from here
  • Open the solution and set as startup project
  • Run the benchmark in Release mode.
  • Check your if system specs is correct
  • Y to continue
  • Use 1, 2 or 3 to select which benchmarks to run
  • Use 4 to run all benchmarks
  • For VSCode you will need to install the C# extention for vscode
  • For VSCode you also need to create launch.JSON and task.JSON files if you want to run in different configurations.
  • If not you can use the provided JSON files.

Running on OSX

  • Install .NET 8 SDK for macOS from here
  • Open the solution and set as startup project.
  • Run the benchmark in Release mode.
  • If the app is terminated, open Benchmark.sln or csproj in terminal.
  • Or cd into the Benchmark folder and run dotnet run -c Release

Running the EXE

  • Open the solution with preferred IDE
  • Set the startup project to Benchmark
  • Build with dotnet build -c Release
  • Publish with dotnet publish -c Release
  • Run Benchmark.exe in the C:\Users\<Path to project>\Benchmark\bin\Release\net8.0\publish\ folder.

Required SDKs

Debugging

  • Set a breakpoint anywhere.
  • Run the program in Debug mode.
  • Use option 5 to start debugging.
  • Select the benchmark you want to debug.
  • The program will pause at the breakpoint.

Output

Windows 11

MacOS Ventura

  • Scroll down to see results.
  • Runtime in seconds(s) should be the benchmark.
  • Global Runtime in seconds(s) can also be the benchmark.
  • There might be a 20 seconds delay on first use due to hardware detection by Hardware.Info.

Specs for tested systems.

MacBookPro 16" 2021

Apple M1 Max 10/32, 10 Cores 10 Threads (8P/2E)
32GB LPDDR5 6400MHz
macOS 13.6

MacBookPro 14" 2023

Apple M2 Pro 10/16, 10 Cores 10 Threads (6P/4E)
16GB LPDDR5 6400MHz
macOS 13.6

MacBookPro 13" 2017

Intel Core i5-7660U CPU 2.20GHz (Kaby Lake), 2 Cores 4 Threads (2P/0E)
8GB DDR3 2133MHz
macOS 12

MacBookPro 15" 2018

Intel Core i7-8850H CPU 2.60GHz (Coffee Lake), 6 Cores 12 Threads (6P/0E)
16GB DDR4 2400MHz
Windows 10 bootcamp

MacBookPro 15" 2018

Intel Core i7-8850H CPU 2.60GHz (Coffee Lake), 6 Cores 12 Threads (6P/0E)
16GB DDR4 2400MHz
macOS 13

Desktop PC

Intel Core i7-8700K CPU 3.70GHz (Coffee Lake), 6 Cores 12 Threads (6P/0E)
16GB DDR4 3600MHz
Windows 11

Workstation

Ryzen Thread Ripper 1950X CPU 3.9GHz (Zen 1), 16 Cores 32 Threads (16P/0E)
32GB DDR4 3400MHz
Windows 10

Dell latitude 5531

Intel Core i7-12800H CPU 1.80GHz (Alder Lake), 14 Cores 20 Threads (6P/8E)

.NET 7 Ranking:

  1. Dell latitude 5531 - i7-12800H @ 55W 46s
  2. Desktop ThreadRipper - Ryzen Thread Ripper 1950X @ 3.9GHz 49s
  3. MacBook Pro 14" 2023 - M2 Pro 10 Core CPU (6P + 4E) 92s
  4. MacBook Pro 16" 2021 - M1 Max 10 Core CPU (8P + 2E) 98s
  5. Desktop i7 - i7-8700K @ 4.7ghz 151s
  6. MacBook Pro 15" 2018 - i7-8850H @ 45W 191s
  7. MacBook Pro 13" 2017 - i5-7660U @ 15W 573s

.NET 8 Ranking:

  1. Dell latitude 5531 - i7-12800H @ 55W 32s
  2. MacBook Pro 14" 2023 - M2 Pro 10 Core CPU (6P + 4E) 35s
  3. Desktop ThreadRipper - Ryzen Thread Ripper 1950X @ 3.9GHz 38s
  4. MacBook Pro 16" 2021 - M1 Max 10 Core CPU (8P + 2E) 42s
  5. Desktop i7 - i7-8700K @ 4.7ghz 105s
  6. MacBook Pro 15" 2018 - i7-8850H @ 45W 133s
  7. MacBook Pro 13" 2017 - i5-7660U @ 15W 401s

Minimum system requirements

  • .NET 8.0.2
  • Dual core CPU
  • Windows 10 or MacOS 12
  • 4GB RAM
  • 1GB Storage

benchmark's People

Contributors

oudommunint avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

benchmark's Issues

.Net 8.0.2

  • Upgrade .Net version from v7 => v8.
  • Check project package dependencies.
  • Code compatibility wiuth .Net 8.
  • Update ReadMe doco.

.DS_Store

Ignore the file .DS_Store from version control.

CPU - Clock speed

Currently CPU's clock speed only report the lowest base clock.
Should report:

  • CPU boost clocks
  • Cover hybrid architecture clock speeds.

Additional GPU info

Get additional GPU information:

  • Clocks
  • Shaders
  • Die
  • Vram, size, clock
  • Process node
  • More to come.

OSX Security

Report from SPHardware should exclude:

  • Serial number (Duh)
  • Hardware UDID
  • Provisioning UUID
  • PC & Usr name

Get system specs

Should get:

  • GPU Shared Memory
  • CPU L2 Cache
  • GPU Count
  • OS Info
  • Memory for OSX

CI - Windows build failing

https://github.com/OudomMunint/Benchmark/actions/runs/8920508703/job/24502720489#step:4:23

  • Step: npm ci
Error: Cannot find module 'C:\npm\prefix\node_modules\npm\bin\npm-cli.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1202:15)
    at Module._load (node:internal/modules/cjs/loader:1027:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:187:[14](https://github.com/OudomMunint/Benchmark/actions/runs/8920508703/job/24502720489#step:4:15))
    at node:internal/main/run_main_module:28:49 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Error handling

Add try catch blocks with exception handling for Get methods.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.