Jump to content



Photo
- - - - -

Benchmark for C.BASIC

casio fx-9860giiC.BASIC

  • Please log in to reply
1 reply to this topic

#1 Hlib2

Hlib2

    Casio Addict

  • Members
  • PipPipPip
  • 74 posts
  • Gender:Male
  • Location:Ukraine
  • Interests:industrial electronics,
    graphing calculators

  • Calculators:
    fx-9860gii-2, afx-2.0+
    fx-9750gii, fx-9750g+
    cfx-9850gb+, graph25
    fx-991DE_X, fx-991ES+
    ti-voyage200(emulator)
    ti-83+_SE, ti-85, hp-50g

Posted 26 October 2020 - 08:59 PM

I recently finished a program for fx9860gii(SH4) that is designed to quickly and comfortably test each new version of C.BASIC. The program CBTST can accommodate a maximum of 48 different tests. Currently, 25 tests are enabled, and there are still empty blocks for 23 tests for future use. I do not know if the project C.BASIC will continue to develop, and it is likely that I am a whole year late with this testing program.
Individual tests in CBTST are organized in 6 pages of 8 points each, and the pages are arranged in a matrix, which allows you to have quick access to all the information:
page 1row.1column(items 1...8); page 1.2(i=9...16); page 1.3(i=17...24);
page 2row.1column(items 25...32); page 2.2(i=33...40); page 2.3(i=41...48);
In this version, the program measures the execution time of specified blocks, functions, and commands. Results that are shorter than 1_ms are represented as a frequency "1÷sec". Results that are slower than 1_ms are shown as time "sec". Measured values are rounded to four significant digits according to a special rule, such as:
12574_1÷sec ➝ 12550_1÷sec
12575_1÷sec ➝ 12600_1÷sec and so on.
This allows you to slightly average fluctuations in the speed of the calculator, which is not constant. To improve the accuracy of measurements, the empty loop execution time is subtracted from the total result, and we get the net time. For example, if you change the Wait count parameter from 0 to 10, the empty "for...next" loop slows down much more than the memory access functions. I also used the Ticks% (2^15_ticks=1_sec) function for measurements, so calculator models without this feature are not suitable for this program.
Quick guide

32092637_m.png

32092648_m.png

The top photos show mode 1. The numbers indicate relative deviations in speed compared to the best results taken from the last few versions of C.BASIC. The " + "sign means that the current version for this test is faster, the" - " sign means slower. The lower photos show mode 2, where you can get detailed information about the content of the test.
Mode 1 functions:
⇐ ⇓ ⇒ changing a row or column to go to a new page.
1...8 (hold) viewing an item according to its number
[0] (hold) view the last active item
[.],[1...8] entering the specified point in mode 2
[.],[0] entering the active point in mode 2
MENU pause the program to save batteries, as well as a menu of additional functions
9 (hold) hint about additional functions for the current mode
F1 (hold) a hint that describes the actions listed above

32092653_m.png

32092654_m.png

Here, "help" menu F1 and "menu-pause" are shown on the third image. Information display options are shown next. The square sign indicates that this test is blocked due to a bug in the current version of C.BASIC. At your discretion, you can temporarily disable some tests, then the results of calculations will not be displayed.
CBASIC_benchmark.zip 30kb
The CBTESTv2 folder contains 15 files. Main program - CBTST.
The CBzAT2 folder contains 25 files. You don`t need to upload them, they are templates-samples for tests.

#2 Hlib2

Hlib2

    Casio Addict

  • Members
  • PipPipPip
  • 74 posts
  • Gender:Male
  • Location:Ukraine
  • Interests:industrial electronics,
    graphing calculators

  • Calculators:
    fx-9860gii-2, afx-2.0+
    fx-9750gii, fx-9750g+
    cfx-9850gb+, graph25
    fx-991DE_X, fx-991ES+
    ti-voyage200(emulator)
    ti-83+_SE, ti-85, hp-50g

Posted 26 October 2020 - 09:08 PM

At startup, the program recalculates only the main page p1.1. Points 1...4 contain the results of empty loops that are used in all other calculations. The "8-queens benchmark" tests are placed in points 5...8.
9 help (prompts) for actions in mode 1:
Shift,[1...8] recalculate (restore) the selected item
Shift, [0] recalculate (restore) the active item (this is the one that was used in the last user view or action)
Shift, 9 recalculate all results on the current page
[.], 9 remove the active item information from the display. The ban is canceled automatically when this item is recalculated
MENU key actions:
1 resuming the program
2 all current results are saved as the new benchmarks against which the comparison will be performed
3 only the best results are saved as a new benchmark
important: only the results shown on the display are saved. Hidden items do not participate in these actions.
The next time you run the program, the saved results disappear. To save the new benchmark permanently, in the CBTST81 subroutine, delete the List_8 that is located before the "Return" command. Then, from the "shift MAT shift LIST" menu, copy the List 8 and paste it to the place of the deleted list. The list text after the "Return" command is a backup record of the old benchmark, just in case.
4 recalculate all pages. Hidden (deleted) items will appear again
5 hide results on the current page (this does not apply to page 1.1)
6 hide results on all pages
7 exit the program in "pause" mode
Then, select any page ⇐ ⇓ ⇒and enter mode 2 by pressing [•],[1...8] or [•],[0].
9 help (prompts) for actions in mode 2:
⇐ ⇓ ⇒ changing pages, the active item does not change (Shift and [•] pressings are not performed or canceled if they were selected before)
F1 or F6 view items on the current page
Shift, [0] recalculate (restore) the current item
[ • ], 9 delete (hide) the current item
[1...8] go to the specified item. However, the Shift and [•] pressings are not performed or canceled if they were selected before
EXIT return to mode 1
MENU actions as in mode 1.
The CBTST3 program is used for testing outside the main program. When prompted for "TEST=1..48?", enter the test number, EXE. First, you should run tests 1 and 2 here, since all other calculations are based on them. Otherwise, the results will be incorrect.
[0],EXE stops program. You can determine how the number matches the location on the page ROW|COL as follows:
T=24×(ROW-1)+8×(COL-1)+(ITEM).
The CBTST83 subroutine is used to block problem tests in the main program. For example, the entry 0➝List_15[N] excludes test with the specified number from calculations.

Edited by Hlib2, 27 October 2020 - 06:09 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users