Форум на Kuban.ru (http://forums.kuban.ru/)
-   Компьютерное железо (http://forums.kuban.ru/f1023/)
-   -   Новый бенчмарк (работа с таблицами) - тестируем! (http://forums.kuban.ru/f1023/novyj_benchmark_rabota_s_tablicami_-_testiruem-7897736.html)

Noile 17.07.2016 15:59

Новый бенчмарк (работа с таблицами) - тестируем!
 
Noile Bench Forms 1.0 - скачать:
[url]https://cloud.mail.ru/public/7HKp/fFDLnPBTi[/url]

Бенчмарк эмулирует работу с большими таблицами: заполнение данных, сортировка, сворачивание строк, изменение размеров таблицы.

Задействуются только мощности процессора, видеокарта в этом не участвует. Количество оперативной памяти не важно. Программа работает только в однопоточном режиме.

Noile 17.07.2016 16:00

Пара результатов (все в стоке, без разгонов).

[URL=http://hostingkartinok.com/show-image.php?id=9e7f6d5724cd7052c5392ed06124aafb][IMG]http://s8.hostingkartinok.com/uploads/images/2016/07/9e7f6d5724cd7052c5392ed06124aafb.jpg[/IMG][/URL]

[URL=http://hostingkartinok.com/show-image.php?id=9435fa7cb08cc45bfcccc6ab9574f298][IMG]http://s8.hostingkartinok.com/uploads/images/2016/07/9435fa7cb08cc45bfcccc6ab9574f298.jpg[/IMG][/URL]

miher 17.07.2016 16:28

Квад 2,66 Ггц
[img]<a target="_blank" href="http://fastpic.ru"><img src="http://i79.fastpic.ru/big/2016/0717/50/512b2a3de395a0c412a16949033a0250.jpg" border="0"></a>[/img]

miher 17.07.2016 16:29

[img][URL=http://fastpic.ru/][IMG]http://i79.fastpic.ru/big/2016/0717/50/512b2a3de395a0c412a16949033a0250.jpg[/IMG][/URL][/img]

Noile 17.07.2016 16:49

3-miher > а версия windows какая?

скорее всего, отрисовка окон зависит от версии Windows. Нужно будет добавить информацию в результаты.

Noile 17.07.2016 17:05

Windows 7

Процессор - Pentium(R) Dual-Core CPU E5400 @ 2.70GHz
Количество ядер - 2, виртуальных ядер - 2

Заполнение таблицы - 4,24 сек.
Сортировка колонок - 2,64 сек.
Сворачивание текста - 7,88 сек.
Прокрутка строк - 8,44 сек.
Изменение размеров программы - 7,13 сек.
Общее время выполнения - 30,92 сек.

miher 17.07.2016 18:47

4-Noile > ХР

Noile 17.07.2016 18:49

Ксеоны на данной задаче показывают отличные результаты. Возможно, из-за того, что у них нет встроенной в процессор видеокарты и изображение выводится внешней видяшкой на чипсете. Точно не уверен.

Noile 17.07.2016 20:04

Короче, разобрался:

скорее всего, дело в том, что на ксеоне стоят настройки система > дополнительные параметры системы > быстродействие > обеспечить наилучшее быстродействие.

При этом все графические эффекты windows отключает (плавная прокрутка, отображение содержимого окон при изменении размера, сглаживание шрифтов и т.д.).

Тестите, только когда настройки включены по умолчанию. По крайней мере, я так тестил.

miher 17.07.2016 20:29

У меня не Ксеон )) Это утилита тупая, обозвала мой Core2 Quad Q9450 Пентиумом3, да ещё Ксеоном )))

miher 17.07.2016 20:39

7-Noile > Тут дело не в видяхе, я думаю, а в кеше. На моём Q9450 таки 12 Mb. На настоящих Ксеонах )) наверняка будет так же...

Noile 17.07.2016 20:58

9-miher > утилита лишь читает то, что у тебя написано в windows про процессор:

root\\CIMV2", "SELECT * FROM Win32_Processor";
queryObj["Name"]
queryObj["NumberOfCores"]

Noile 17.07.2016 20:59

10-miher > попробуй графические эффекты выставить по умолчанию. Тогда у тебя время будет в районе 25 - 30 секунд, скорее всего.

miher 17.07.2016 21:34

Всё включил, по умолчанию, все пункты.
Гы )) Ещё лучше.
[img][URL=http://fastpic.ru/][IMG]http://i77.fastpic.ru/big/2016/0717/ec/0145d2ab8fbddaf6cfa3278b421997ec.jpg[/IMG][/URL][/img]

ka618 18.07.2016 20:38

[img]http://s017.radikal.ru/i412/1607/6d/f899febcd179.jpg[/img]

AviatorABC 18.07.2016 21:52

[img]http://s019.radikal.ru/i643/1607/a0/c3666d5ff158.png[/img]

Ткачик 18.07.2016 23:25

Гм! Уже вторую ветку тихо удивляюсь: и не стрёмно народу запускать EXE-шник, созданный незнамо кем, незнамо с какими целями и незнамо что в себе содержащий.

Впрочем, дело хозяйское...

Noile 19.07.2016 04:41

16-Ткачик > ну, можно прогнать на вирусы на virustotal, если что. А как люди с торрентов игрушки качают сотнями? Вот там реально большой шанс встроенной заразы.

AviatorABC 19.07.2016 22:33

17 Noile
Ты сам прогу писал? Что то я вижу явную не состыковку. Мой проц на изменение размеров программы ложит всех на порядки. Неужели в этом заключается его плюс?

Noile 19.07.2016 22:59

18-AviatorABC > ну, по названию видно, что сам писал.

Судя по тому, что у тебя прокрутка строк за 0,13 секунды, у тебя используется упрощенная графика в настройках быстродействия windows.

Выстави настройки по умолчанию и у тебя будет общее время выполнения > 30 сек.

AviatorABC 19.07.2016 23:31

19 Noile
У меня все по умолчанию, я эту винду (64) установил лишь из-за одной игры. Но в итоге накидал в нее весь свой джентльменский набор программ. Так чта... сомнения остались. А 0.13 это у парня выше

Noile 19.07.2016 23:38

Здесь, все-таки, быстродействие сильно зависит от настроек графики и версии винды. Я просто не ожидал, что люди на современных процах заходят в настройки системы и отключают там галочки для повышения быстродействия прокрутки. Сам не пользуюсь этими опциями со времен 4-го пентиума.

AviatorABC 19.07.2016 23:43

21 Noile
Графика у меня вообще отстой - 8500GT - назвать это графикой в приличном обществе... сам понимаешь ))

Noile 20.07.2016 07:18

22-AviatorABC > тест написан на Windows Forms. По идее, видеокарта не должна участвовать. Я имею в виду, что в настройках Windows убрана куча пунктов типа "гладкое прокручивание списков", "сглаживание экранных шрифтов", "отображать содержимое окна при изменении размера" и т.д.

Если отключить данные настройки, то тест проходится намного быстрей. Я тестировал просто при настройках по умолчанию.

ka618 20.07.2016 08:01

23-Noile > все по умолчанию.

manchi 20.07.2016 08:02

Хороший троянский биткоин-майнер. Запускайте Noile virus, господа ))

Noile 20.07.2016 08:38

25-Манчкины круче такс > за слова ответишь? Не нужно флудить.

Noile 20.07.2016 08:40

Еще хочу написать бенчмарк для HDD/SSD. А именно - тестирование в разных режимах: однопоточные/многопоточные запись и чтение файлов разных размеров.
Потом выложу.

ka618 20.07.2016 13:18

25-Манчкины круче такс >
[url]https://www.virustotal.com/ru/file/18c60c539d510f4bd2f9dfbdbd819fe3f1010ac8e37d06d5e7dbddd8bc385cfa/analysis/1469009614/[/url]

Sages 24.07.2016 13:11

28-ka618 >[img]http://i77.fastpic.ru/big/2016/0724/c8/c481ddc3ad62344639ef4cf0bab5cbc8.png[/img]

Noile 24.07.2016 15:13

29-Sages > господи, да нет там никаких вирусов. Могу исходный код программы дать - скомпилируешь из-под вижуал студии и получишь такой же exe-шник.

Сейчас этих антивирусов больше 60 штук. Из них всегда 1 - 2 будут считать программу за вирус. По ссылке это четко видно:
[url]https://www.virustotal.com/ru/file/18c60c539d510f4bd2f9dfbdbd819fe3f1010ac8e37d06d5e7dbddd8bc385cfa/analysis/1469009614/[/url]

Noile 24.07.2016 15:17

Более того! Программа написана на c# без какой-либо защиты или обфускации.

Ее можно посмотреть изнутри с помощью reflector:
[url]http://www.red-gate.com/products/dotnet-development/reflector/[/url]

Посмотри код программы, если такой мнительный :)

Noile 24.07.2016 15:20

Или с помощью: [url]http://ilspy.net/[/url]

Noile 24.07.2016 15:30

[b]Исходный код. [/b]Проверь exe-шник с помощью IlSpy - там такой же код.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
using System.Management;
using System.Management.Instrumentation;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace benchmark_tables
**
public partial class Form1 : Form
**
string HomeDir = Application.StartupPath;

public Form1()
**
InitializeComponent();
**

private void button2_Click(object sender, EventArgs e)
**
this.Text = "Прогрев процессора (5 секунд)";
tabControl1.SelectedIndex = 0;

dataGridView1.Rows.Clear();
dataGridView1.Columns[0].Visible = true;
dataGridView1.Columns[1].Visible = true;
dataGridView1.Columns[2].Visible = true;
dataGridView1.Columns[3].Visible = true;
dataGridView1.Refresh();

this.Height = 750;
this.Width = 1024;

var source = new CancellationTokenSource();
for (int i = 0; i < Environment.ProcessorCount; i++)
new Thread(Function).Start(source.Token);

Thread.Sleep(5000);
source.Cancel();

StringBuilder sb = new StringBuilder();

ManagementObjectSearcher searcher8 = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor");

foreach (ManagementObject queryObj in searcher8.Get())
**
sb.Append("Процессор - " + queryObj["Name"] + "\r\n");
sb.Append("Количество ядер - " + queryObj["NumberOfCores"] + ", ");
**
sb.Append("виртуальных ядер - " + Environment.ProcessorCount.ToString());

textBox2.AppendText("\r\n" + sb.ToString() + "\r\n\r\n");

DateTime dt3 = DateTime.Now;

DateTime dt1 = DateTime.Now;

this.Text = "Заполнение таблицы по одной строчке (10 тыс. строк)";
textBox2.AppendText("Заполнение таблицы - ");

for (int i = 0; i < 10000; i++)
**
dataGridView1.Rows.Add(i.ToString() + " строка", i.ToString() + " строка", i.ToString() + " строка", i.ToString() + " строка", i.ToString() + " длинный текст, который не помещается на одной строке и должен будет сворачиваться и разворачиваться, замедляя процессор");

if (i % 400 == 0)
dataGridView1.Refresh();
**

dataGridView1.Refresh();


DateTime dt2 = DateTime.Now;

var isec1 = Math.Round((dt2 - dt1).TotalSeconds, 2);
string sec = isec1.ToString();
textBox2.AppendText(sec + " сек.\r\n");

this.Text = "Сортировка колонок";
textBox2.AppendText("Сортировка колонок - ");

dt1 = DateTime.Now;

dataGridView1.Sort(Column1, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column2, ListSortDirection.Ascending);
dataGridView1.Refresh();
dataGridView1.Sort(Column3, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column4, ListSortDirection.Ascending);
dataGridView1.Refresh();
dataGridView1.Sort(Column5, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column1, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column2, ListSortDirection.Ascending);
dataGridView1.Refresh();
dataGridView1.Sort(Column3, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column4, ListSortDirection.Ascending);
dataGridView1.Refresh();
dataGridView1.Sort(Column5, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column1, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column2, ListSortDirection.Ascending);
dataGridView1.Refresh();
dataGridView1.Sort(Column3, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column4, ListSortDirection.Ascending);
dataGridView1.Refresh();
dataGridView1.Sort(Column5, ListSortDirection.Descending);
dataGridView1.Refresh();
dataGridView1.Sort(Column5, ListSortDirection.Ascending);

dt2 = DateTime.Now;
isec1 = Math.Round((dt2 - dt1).TotalSeconds, 2);
sec = isec1.ToString();
textBox2.AppendText(sec + " сек.\r\n");

this.Text = "Сворачивание текста";
dt1 = DateTime.Now;
textBox2.AppendText("Сворачивание текста - ");


dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
for (int i = 1; i < 20; i++)
**
dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView1.Refresh();
dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.False;
dataGridView1.Refresh();
**

dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView1.Refresh();

dt2 = DateTime.Now;
isec1 = Math.Round((dt2 - dt1).TotalSeconds, 2);
sec = isec1.ToString();
textBox2.AppendText(sec + " сек.\r\n");

this.Text = "Прокрутка строк";
textBox2.AppendText("Прокрутка строк - ");
dt1 = DateTime.Now;


try
**
while (true)
**
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.FirstDisplayedScrollingRowIndex + 200;
dataGridView1.Refresh();
**
**
catch ** **

dt2 = DateTime.Now;
isec1 = Math.Round((dt2 - dt1).TotalSeconds, 2);
sec = isec1.ToString();
textBox2.AppendText(sec + " сек.\r\n");

dataGridView1.Columns[0].Visible = false;
dataGridView1.Columns[1].Visible = false;
dataGridView1.Columns[2].Visible = false;
dataGridView1.Columns[3].Visible = false;
dataGridView1.Refresh();


this.Text = "Изменение размеров программы c обновлением интерфейса";
textBox2.AppendText("Изменение размеров программы - ");
dt1 = DateTime.Now;

this.MinimumSize = new Size(0, 0);

while (this.Size.Width > 420)
**
this.Width -= 10;
this.Refresh();
**


while (this.Size.Height > 340)
**
this.Height -= 10;
this.Refresh();
**


dt2 = DateTime.Now;
isec1 = Math.Round((dt2 - dt1).TotalSeconds, 2);
sec = isec1.ToString();
textBox2.AppendText(sec + " сек.\r\n");

this.Text = "Готово!";

DateTime dt4 = DateTime.Now;
isec1 = Math.Round((dt4 - dt3).TotalSeconds, 2);
sec = isec1.ToString();
textBox2.AppendText("Общее время выполнения - " + sec + " сек.\r\n");

tabControl1.SelectedIndex = 1;

this.Text = "Noile Bench Forms 1.0 (отрисовка таблиц)";
**

static void Function(object obj)
**
var token = (CancellationToken)obj;
while (!token.IsCancellationRequested)
**

**
**

private void button3_Click(object sender, EventArgs e)
**
Bitmap scr = getControlScreenshot(this);
scr.Save(HomeDir + "/результаты.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
try
**
Process.Start(HomeDir + "/результаты.jpg");
**
catch ** **
**

public Bitmap getControlScreenshot(Control c)
**
Bitmap res = new Bitmap(c.Width, c.Height);
c.DrawToBitmap(res, new Rectangle(Point.Empty, c.Size));
return res;
**
**
**

Noile 24.07.2016 15:31

Вместо звездочек - угловые кавычки.

Sages 25.07.2016 12:54

34-Noile >воу, чувак, полегче, нафиг тут эта непонятная простыня? есть две сработки, этого достаточно. Раз ты нии..цо крутой прогер, сделай так, чтоб их не было :)

Noile 25.07.2016 13:31

Сработки из-за этого кода, скорее всего:

ManagementObjectSearcher searcher8 = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor");

Т.е. лезет в root, чтобы узнать марку процессора. Некоторые вирусы могут использовать тот же код, поэтому и есть срабатывание.

2 срабатывания из 56 - это мелочи. Практически любую программу прогони - там будут срабатывания.

x0577216 27.07.2016 16:06

[quote=Sages;42595732]Раз ты нии..цо крутой прогер, сделай так, чтоб их не было :)[/quote]
ну вот, привели неведомо какую программу с неведомо какими-то таблицами. Что с чем сравнивать?

AviatorABC 28.07.2016 02:01

Блин, втут вообще есть челы читающие на С? По моему втут есть косяк. Но где он ссуко, не могу найти.

Sages 28.07.2016 21:08

37-x0577216 >вы про антивирь? дык это панда бесплатная. понятно, что параноидальная там где не надо, но как бесплатная - очень даже приятная.


Текущее время: 04:22. Часовой пояс GMT +3.