Skip to content

Commit af74414

Browse files
luke-grubereightbitraptor
authored andcommitted
Add Optcarrot Ractor benchmark
This is a copy of the Optcarrot benchmark from benchmarks/optcarrot, but modified to be compatible with multiple Ractors
1 parent f5a281b commit af74414

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
require_relative '../../harness/loader'
2+
require_relative "../../benchmarks/optcarrot/lib/optcarrot"
3+
4+
ROM_PATH = File.expand_path("../../benchmarks/optcarrot/examples/Lan_Master.nes", __dir__).freeze
5+
# deep freeze all the constants
6+
7+
# rubocop:disable Lint/ShadowingOuterLocalVariable, Style/Semicolon
8+
Optcarrot::Config::DEFAULT_OPTIONS.each {|k, v| k.freeze; v.freeze }.freeze
9+
Optcarrot::Config::OPTIONS.each do |k, v|
10+
k.freeze
11+
v.each do |k, v|
12+
k.freeze
13+
v.each do |k, v|
14+
k.freeze
15+
if v.is_a?(Array)
16+
v.each {|v| v.freeze }
17+
end
18+
v.freeze
19+
end.freeze
20+
end.freeze
21+
end.freeze
22+
Optcarrot::Driver::DRIVER_DB.each do |k, v|
23+
k.freeze
24+
v.each {|k, v| k.freeze; v.freeze }.freeze
25+
end.freeze
26+
Optcarrot::Audio::PACK_FORMAT.each {|k, v| k.freeze; v.freeze }.freeze
27+
Optcarrot::APU::Pulse::WAVE_FORM.each {|a| a.freeze }.freeze
28+
Optcarrot::APU::Triangle::WAVE_FORM.freeze
29+
Optcarrot::APU::FRAME_CLOCKS.freeze
30+
Optcarrot::APU::OSCILLATOR_CLOCKS.each {|a| a.freeze }.freeze
31+
Optcarrot::APU::LengthCounter::LUT.freeze
32+
Optcarrot::APU::Noise::LUT.freeze
33+
Optcarrot::APU::Noise::NEXT_BITS_1.each {|a| a.freeze }.freeze
34+
Optcarrot::APU::Noise::NEXT_BITS_6.each {|a| a.freeze }.freeze
35+
Optcarrot::APU::DMC::LUT.freeze
36+
Optcarrot::PPU::DUMMY_FRAME.freeze
37+
Optcarrot::PPU::BOOT_FRAME.freeze
38+
Optcarrot::PPU::SP_PIXEL_POSITIONS.each {|k, v| k.freeze; v.freeze }.freeze
39+
Optcarrot::PPU::TILE_LUT.each {|a| a.each {|a| a.each {|a| a.freeze }.freeze }.freeze }.freeze
40+
Optcarrot::PPU::NMT_TABLE.each {|k, v| k.freeze; v.freeze }.freeze
41+
Optcarrot::CPU::DISPATCH.each {|a| a.freeze }.freeze
42+
Optcarrot::ROM::MAPPER_DB.freeze
43+
# rubocop:enable Style/Semicolon
44+
45+
# rubocop:disable Style/MultilineBlockChain
46+
47+
run_benchmark(10) do
48+
nes = Optcarrot::NES.new(["-b", "--no-print-video-checksum", ROM_PATH])
49+
200.times { nes.step }
50+
end

0 commit comments

Comments
 (0)