TestMem support page. TestVideoRAM

TestMem techsupport home page

home   news   software   articles   other   links   contact


 

Мои программы:

Тест памяти

TestMem1
TestMem2
TestMem3
TestMem4
Тест памяти и стабильности процессора под Windows
S&M
Тест стабильности процессора под DOS
S@M
Автоматическое управление частотой процессора
C&QnF2
Тест видеопамяти
TestVideoRAM
Загрузчик video BIOS
Loader
Меню для VGA
Video BIOS extender
Производительность подсистемы памяти
BenchMem
Other

Разное.

    Небольшие программки, на которые не хочется заводить специальные страници.

    MarkViewer
Зачем нужна эта программа
Описание конфигурационного файла
Как выбирать переменные
Что, где, ...??

MarkViewer

Программа MarkViewer предназначена для просмотра и сравнения результатов тестов некоторых продуктов фирмы Futuremark.

MarkViewer


Она не привязана к какому-либо конкретному продукту и версии, это (до некоторой степени) настраивается через конфигурационный файл. Это обязательный элемент и его вполне возможно сделать самому.
Конфигурационный файл может иметь расширение .cfg и будет лучше, если он будет отражать название теста, для которого он предназначен.
Идея в том, что файл результатов разбивается на некоторые поименованные переменные и если указать список нужных, то програма сможет выстроить нечто типа таблицы.
Описание конфигурационного файла.

Файл состоит из секций, определы два типа секций:
[Main] - для описания общих характеристик и
[String**] - описывают строки фильтра (подробнее ниже).
Секция [Main]

Список имеющихся ключей, в () пишется разумный диапозон, а в {} значение
по умолчанию. Сокращения:
'color' - три байта в HEX формате, младший = Red,
средний = Green, старший = Blue. Формат нотации произвольный, понимается
******h, 0x******, и даже просто ******. Незначащие нули справа можно не писать.
Если указано больше 3х байт, то обрежется - старшее выкинется.
Каждый цвет задается байтом, т.е. минимальное значение =0, максимальное 255 (или 0FFh). Перевести десятичное число в HEX можно с помощью калькулятора Windows. Например, если надо поставить Red=6, Green=120, Blue=80, то это даст HEX числа 06, 78 и 50. Т.к. старший байт пишется раньше, то color=507806 'строка' - просто строка символов. Будьте внимательны, пробелы в конце строки не видны в текстовом редакторе, но введуться программой и могут сломать выравнивание или вообще вызвать ненахождение переменной (см. ниже).
(0-*) - значение имеет только факт 0 или не 0. Т.е. просто бинарный флаг.

NameColumnWidth (50-500) {90} - ширина столбца названий VarName
DataColumnWidth (50-500) {120} - ширина столбца данных
StringHeight (8-20) {13} - высота строки
StringSpace (0-3) {1} - зазор между столбцами/строками
NameAlign (0-2) {0} - выравнивать название VarName по:
0 = левой границе, 1 - центр, 2 = правой
DataAlign (0-2) {1} - выравнивание данных, 0-1-2
File1name (строка) {Result.xml} - первый файл для поиска данных
File2name (строка) {SI.xml} - второй файл для поиска данных
TextColor (color) {0} - цвет текста по умолчанию
HeaderTextColor (color) {800000h+} - цвет текста заголовка, там выводятся
названия файлов без расширения
Brightnes (0-255) {245} - яркость фона,его нельзя сделать цветным
Contrast (0-20K) {1000} - коэф-т пересчета разности данных в цвет
EmtpyDataColor (color) {808080h+} - цвет данных, если они признаны пустыми
DisableGlueDuplicate (0-*) (0) - не склеивать одинаковые ячейки
NameFontX (3-10) {5} - фонт вывода названий переменных,ширина
NameFontY (8-20) {15} - ....... высота
NameFontW (0-1000) {600} - ....... толщина. 0...400=норм, 600=bold
DataFontX (3-10) {5} - то-же для столбцов данных
DataFontY (8-20) {15} - ..
DataFontW (0-1000) {600} - ..
CommentDelFirst (0-10) {8} - комментарии надо обрабатывать, этот
параметр удаляет N символов от начала
CommentDelEnd (0-5) {2} - ... этот от конца.
DataDelZeros (0-*) (1) - не 0 - удалять незначащие дробные 0
DataAccuracySign (-1-5) (2) - обрезать дробную часть до N символов
HighScoreColor (color) {020C0FFh} - цвет для наибольшего числа (красный)
LowScoreColor (color) {0FFFF50h} - цвет для наименьшего числа (синий)
По *ScoreColor требуется доп. пояснения. При отличии данных от средних, его цвет фона меняется от "Brightnes" до *ScoreColor. Причем, изменение идет нелинейно и двухстадийно - вначале меняется активный цвет (красный или синий) и зеленый, потом уровень зеленого начинает падать. Для включения двухстадийной закраски надо установить Green (средний байт) большим. Если эта двухстадийность не нужна, то Green надо сделать малым. Например, HighScoreColor=020C0FFh означает, что вначале идет желто-коричневый, а потом красный.
Для перехода с простым изменением уровня красного надо задать число 02020FFh
Для синего аналогично.

Секция [String**]

Название секции определяет очередность строк. "**" может меняться от 01 до 99 (всегда два символа!), общее количество строк не больше 30. Если это число будет превышено, то програма 'свернется'.
Рекомендация - при наборе строк указывать номера через 1-2, тогда проще будет вставить еще пару строк между соседними без пересчета всех строк.
Взаимное располажение секций [String**] в файле конфигурации не важно, они выбираются по номеру.
Vars - переменная. БУДЬТЕ ТОЧНЫ! Если забыть хоть что-нибудь или добавить лишний пробел, то програма не сможет найти эту переменную. Методика будет описана ниже. Это единственный обязательный параметр!
VarName - как будут называться эти данные. Пишется произвольно.
Type - тип данных. Они бывают 3 типов - данные (D), комментарий (C) и
атрибуты (A). Можно совмещать, например Type=A+D
По умолчанию Type=D+C, т.е. выводится данные и комментарий. Если что-то мешает, то можно указать явно, что нужно выводить.
TextColor - цвет текста этой строки, формат color. Если не указан, то
действует TextColor, указаный в секции Main.
Как выбирать переменные.

Вначале надо сделать какой-нибудь конфигурационный файл, иначе програма не пустит. Например такой: (или любой реальный)
[String01]

Vars=1
VarName=temp
... и загрузить его в программу. Откроется кнопка загрузки файла, а в таблице
будет одна строка с именем 'temp' в левой части.
Соответственно надо открыть _нужный_Вам_ файл. Если файл совместим, то появится кнопка открывания второго файла. Теперь надо посмотреть в каталог с этими файлами, там должен быть файл Vars.txt Он всегда создается заново при открывании очередного файла в программе.
Теперь открываем Vars.txt в текстовом редакторе, и лучше не в FAR'е.
Там будет что-то типа:
Benchmark....Name[01].EnumValue.Formatted: C='![CDATA[Min CPU Frequency]]'
Benchmark....Values[03].EnumValue.Plain[02]: D='2204'
Benchmark....Values[03].EnumValue.Formatted: C='![CDATA[2204 MHz]]'
Benchmark....Name[01].EnumValue.Plain[02]: D='10'
Судя по надписи "Min CPU Frequency" это соответствует минимальной частоте
процессора. Если нам надо выдавать эту частоту в программе, то надо описать
переменную [String**]
Т.е. заводим новую секцию [String**]
1. название секции (номер не должен повторяться!)
Например [String37]
2. имя переменной, которая будет выводитсья в левом столбце.
Например VarName=Min CPU Freq
Обращаю внимание, в конце слова "Freq" сразу стоит перевод строки.
Теперь надо пределиться, откуда брать данные. Здесь возможны два варианта:
a) по данным
б) по комментарию
Вариант а) - для этого надо взять данные (D='2204'), т.е указать
Vars=Benchmark.Values[03].EnumValue.Plain[02]
Еще можно указать Type=D , хоть это и не обязательно - там нет комментария.
Вариант б) - для этого надо взять комментарий (C='![CDATA[2204 MHz]])
Комментарий содержит некоторый фиксированный мусор в начале и в конце,
потому в программе есть параметры CommentDel*** для удаления мусора.
Соответственно, переменная должна выглядеть так:
Vars=Benchmark.Values[03].EnumValue.Formatted
Тип можно указать Type=С , но можно и не делать, кроме комментария там ничего нет.
Оба вариант равнозначны, но в варианте б) пишется MHz. Лучше или хуже, решать Вам. Для сортировки по вычислению отклонения данных от средних это не важно, число 2204 все равно введется.
В программе есть понятие атрибута - это то, что описывает формат числа.Например:
Benchmark.ResultValue[02]: A='unit="CPUMarks" base="10" exp="0"' D='747.000000'
Тут сразу видно, почему надо удалять незначащие дробные нули в конце. :)
Атрибут A='unit="CPUMarks" base="10" exp="0"' как-то достаточно бессмысленен, потому как данные его использовать сложно, хоть и можно, для этого надо указать Type=A . При выводе результатов поиска при указе Type=несколько, вначале выдаются данные, потом комментарий, потом атрибут. Будьте предельно аккуратны при копировании, переменная оканчивается ":", сам знак ":" не копировать и перед/после переменной ни в коем случае не ставить лишних пробелов! Если у Вас програма не находит переменной, то проверьте ее еще раз!! Иногда помогает взять другую переменную с теми-же/аналогичными данными. Полезно заглядывать в секцию System_Info.

Что, где, ...???

Если интересно, пользуйтесь.

back