Форум программистов, компьютерный форум, киберфорум
Разработка и тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
24 / 16 / 3
Регистрация: 19.12.2009
Сообщений: 366

Узкое тестирование Си С++ и php

20.01.2010, 16:34. Показов 2030. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Провел небольшое тестировании, так как воссоздать его легко точные данные железа приводить не буду. Тест довольно простой и узкий, поэтому выложить меня эту статью с подвигло странность результатов.
Тесты были в среде windows XP (хост машина) и в среде linux Centos(гостевая вирт машина).
Так как скорости вирт машины и хост машины разные судить рекомендую по соотношениям.

Дано лог файл apache размером 397мб (1.615.265 строк).
Компилятор VC++2008 и gcc 4.1.2(linux).
Для php веб сервер apache 2, php 5, php как модуль апача.

C
1
2
3
4
5
6
7
8
9
10
// Си подобный код
char line[10240];
FILE * fo;
 
fo = fopen("./s.txt", "r");
while ( !(feof(fo)) )
{
   fgets(line, 10240, fo);
   i++;
}
C++
1
2
3
4
5
//Си++ подобный код
ifstream fin;
fin.open("./s.txt", ios_base::in);
while (fin.getline(line, 10240))  i++;
fin.close();
PHP
1
2
3
4
5
6
7
8
//php
$fo = fopen("./s.txt", "r");
while (!feof ($fo))
{
    $s = fgets ($fo);
    $i++;
}
fclose($fo);
Время замерялось через функцию clock(), в php через microtime


Тест 1.
Время средние, за 5 запусков (не включая первый запуск).
windows:
Си - 2.218 - 27,18%
С++ - 4.359 - 53,42%
php - 1.582 - 19,39%

linux:
Си - 0.540 - 8,56%
С++ - 1.620 - 25,70%
php - 4.143 - 65,73%

Выводы делать вам, напомню что стоит сравнивать процентный соотношения одной ОСи, а не само время разных ОС. Но мое имхо - windows зло (Си оказался медленней чем пхп, видно Си с fopen и fgets реализован в винде убого), причем даже на вирт машине, где реализация жесткого диска медленная показатели оказались выше чем в windows.
Почему php оказался сверхскоростным не понятно, видно работа каких-то "кэшов" в вебсервере.

Тест 2.
Простые итерации циклов (выполнены в linux, в windows делать желание не было).
#1 while (i < 1000000000) i++;
#2 for ( ; i < 1000000000; i++);

#1 Си/C++ - 0.240
#2 Си/C++ - 0.240

#1 php - 6.558
#2 php - 7.932
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.01.2010, 16:34
Ответы с готовыми решениями:

Тестирование PHP
Не знаю в правильном разделе оформляю тему, поэтому просьба сильно не ругать - а просто если что перенести тему в соответствующий раздел ...

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

тестирование на php+mysql
Всем доброго дня. Подскажите новичку в php. У меня задание:написать тестирование по определенному предмету (не важно какому). Там 4...

8
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.01.2010, 12:30
Не очень понятно, что означают цифра процентов. А если уж пытаться сказать, что одно зало, а другое нет - то у меня возникает подозрение, что сильный разброс между Си и пхп в линухе говорит о том, что под линухом пхп работает криво. Я никогда на пхп ничего не писал, но скриптовые интерпретаторы подобногорода на таком тесте, где 99% времени уходит на непосредственно чтение файла, должны давать время, близкое к Си
0
 Аватар для Gravity
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
21.01.2010, 13:21
Скорость чтения файла это не тот способ, которым можно тестировать языки, потому как у самих ОСей могут быть разные фишки для кэширования и оптимизации чтения.
0
24 / 16 / 3
Регистрация: 19.12.2009
Сообщений: 366
21.01.2010, 15:06  [ТС]
Процент от общей суммы (соотношение).
В том то и факт что я тоже думал, что скорости должны быть по сути одинаковы, но почему вот так, собственно поэтому и выложил тест, потому что удивился.

Удивило так же в php интерация. В малых числах интераций цикла конечно не заметна, но в больших говорит о том что работает это медленно. Почему не ясно.

Хотелось бы сравнить объемные движки сайтом, чтобы во всем этом участвовала парсинг и интерпретация php кода. Я думаю результат тоже удивит.

PS тот же факт удивляет почему в windows Си со стандартной библиотекой медленней чем php.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.01.2010, 15:29
Цитата Сообщение от List2006 Посмотреть сообщение
PS тот же факт удивляет почему в windows Си со стандартной библиотекой медленней чем php.
Вариантов мильён. Начиная от того, что windows тут не при чём, а проблема в конкртеной реализации библиотеки или ериво работающем драйвере диска, заканчивая тем, что используется пиратская версия винды, непонятно кем и непонятно как сломанной

В идеале надо бы иметь все исходники и входные данные (или программу, которая просто генерит этот файл в 300 мегов), чтобы хоть как-то это можно было у себя повторить. А так же указание того, чем и как ты это дело компилировал

Более того, если делается замер времени, то программа, работающая 1-2 секунды - абсолютно плохой пример. Потому как львиная доля времени может быть тупо потрачена на загрузку динамической библиотеки или что-то ещё

Т.е. результаты твоих экспериментов по большому счёту не говорят ни о чём
0
24 / 16 / 3
Регистрация: 19.12.2009
Сообщений: 366
21.01.2010, 16:16  [ТС]
Evg
Ты реально "-----" ради такого теста, я написал выше, что тест довольно прост, чтобы учитывать ВСЕ факторы (и это реально было самоубийством). И в тесте проводился замер чтение файла, мне это было нужно, я и так растянул 2 секундный тест файлом с 1,6 млн строк. 2 секунды для программы это ОЧЕНЬ ОЧЕНЬ много.

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

Простота теста реализует возможность повторить спокойно у себя.

Про то что нелицензионная ОС, так это твои пустые надумки, такой информации выложено не было.
Тесты были на лицензионном ПО.
Драйвера обычные. Железо обычное (сам винты не собираю, надоело).

PS Критику принимаю, но по большей части это похоже на недовольный троллинг.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.01.2010, 16:59
За попытками помочь и конструктивно указать на ошибки ты увидел только троллинг. Ради бога. У меня нет привычки ломиться в закрытые ворота
0
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
21.01.2010, 20:49
за 5 запусков
.. Выборка настолько мала, что здесь в принципе и говорить нельзя о результатах статистических данных....
0
24 / 16 / 3
Регистрация: 19.12.2009
Сообщений: 366
21.01.2010, 22:02  [ТС]
Цитата Сообщение от ISergey Посмотреть сообщение
.. Выборка настолько мала, что здесь в принципе и говорить нельзя о результатах статистических данных....
Выборка сделано потому что даже за 100 запусков средний показатель будет такой же. В большой выборке нуждается только те моменты в которых есть постоянно изменяющийся элемент. Скажем если нагрузка не изменилась и число обращений к диску нет, и число спящих процессов тоже, то больше нет факторов чтобы вести дополнительную выборку. В реале выборок было больше когда начинал тестировать, но разницы нет.


PS почему слово "-------" у вас матное? =)) это сленговый обиход (Злостный модер, ты не поверишь, мне реально все равно, для меня форум не в авторитете чтобы на меня предупреждения подействовали, я не уважаю ресурсы в которых модерируют по личным убеждениям и эмоциям) =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.01.2010, 22:02
Помогаю со студенческими работами здесь

Тестирование php кода
Здравствуйте, нужно написать тест на функцию валидации мыла. phpunit'ом никогда не занимался. Сейчас читаю доки, но кроме как написание...

тестирование на PHP + mysql
Суть вопроса: надо написать тест (вопросы, варианты ответов - чекбоксы, радио кнопки и т.д., не суть) вопросы которого и ответы...

Тестирование на сайте скриптом PHP
Добрый день! Мой бывший классный руководитель попросил меня написать web тест по истории для школоты, а так как это дл меня абсолютно...

Разрешение стало узкое, win 10
вчера ночью было нормально, утром включил компьютер и вот такая картина

Узкое место в 1-Wire over UART
Тема реализации 1-wire интерфейса при помощи периферии UART как бы не новая (например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru