Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/50: Рейтинг темы: голосов - 50, средняя оценка - 4.72
 Аватар для xADMIRALx
70 / 64 / 5
Регистрация: 09.06.2012
Сообщений: 291

Разница в скорости выполнение программы C++ или C#

25.07.2012, 07:23. Показов 9971. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И так здравствуйте,хотелось бы узнать почему в данном случае(то есть использование stl) c++ медленнее c# ,запускаю из релиза

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale>
 
 
int main()
{
    setlocale(LC_ALL,".1251");
    time_t f = clock();
    for (int i = 0; i < 100000;i++)
        printf("%d\n",i);
 
    printf("Программа выполнялась : %d sek\n",(clock() - f) / CLOCKS_PER_SEC);
 
 
 
 
    system("PAUSE");
    return 0;
 
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace test_in_cshape
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime start = DateTime.Now;
           
            for (int i = 0; i < 100000; i++)
            {
                Console.WriteLine("{0}",i);
            }
            DateTime finish = DateTime.Now;
            Console.WriteLine("Программа выполнялась : {0}", finish.Second - start.Second);
            Console.ReadLine();
 
        }
    }
}
Запускаю одновременно 2 программы c# показывает 10 сек,с++ 14 сек.

если не в том разделе создал перенесите пожалуйста в нужный
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.07.2012, 07:23
Ответы с готовыми решениями:

Разница в скорости выполнения, итераторы
Википедия for (ContainerType::iterator it = C.begin(),end = C.end(); it != end; ++it) { std::cout &lt;&lt; *it &lt;&lt; std::endl; } ...

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

Оптимизация или увеличение скорости работы программы
Доброго времени суток, программисты! Буквально на днях столкнулся с проблемой, связанной с перегрузкой &quot;дельфина&quot; при...

30
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
25.07.2012, 08:07
А ничего, что на c++ ты ещё деление выполняешь N раз? Это сложная операция ведь. Хотя, конечно, в c# должно присутствовать такое же деление, просто оно вызывается само при обращении к .Second, но, возможно, оно каким-то способом оптимизировано?
А вообще, я всегда считал, что C# гораздо быстрее C++
0
 Аватар для defer
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
25.07.2012, 09:11
Цитата Сообщение от nexen Посмотреть сообщение
А ничего, что на c++ ты ещё деление выполняешь N раз
деление выполняется 1 раз

Цитата Сообщение от xADMIRALx Посмотреть сообщение
И так здравствуйте,хотелось бы узнать почему в данном случае(то есть использование stl) c++ медленнее c# ,запускаю из релиза
вообще-то у вас код на с

Добавлено через 50 секунд
а в чем смысл, тут же просто текст в консоль выводится?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.07.2012, 15:08
Ну я бы не включал операции вывода в консоль в счет.
Да и время говорят не показать ( такты считать надо ). Да и оптимизацию как то надо отключать наверное.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.07.2012, 15:18
Цитата Сообщение от xADMIRALx Посмотреть сообщение
узнать почему в данном случае(то есть использование stl) c++ медленнее
а где тут(в 1-м посту) STL ?
1
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
25.07.2012, 19:04
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от nexen Посмотреть сообщение
А вообще, я всегда считал, что C# гораздо быстрее C++
Бред... полный...
Не может код, выполняемый в виртуальной машине, выполнятся быстрее кода, выполняемом непосредственно в процессоре.
Это тоже самое, что утверждать, что твое письмо быстрее дойдет до адресата почтой России, чем через mail.ru
5
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
25.07.2012, 19:37
Kastaneda, друг-программист всегда так твердил, вот я и поверил ;<

Не по теме:

Кстати, вопрос не по теме, но я ну никак не могу понять, что же из себя представляет управляемый код? И чем он отличается от неуправляемого? Само собой википедию я читал, да и гуглом пользовался, но, видимо, мой скудный интеллект не позволяет этого понять ; ( Можете попробовать объяснить по-простому? (для людей, с IQ ниже 60)
То, что я понял (хотя, наверное, это не так) : управляемый код имеет место в среде, использующей виртуальную машину (c#, java и т.д), а неуправляемый код, соответственно, без ВМ (c++, turbo pascal (пример на 5 баллов :>) и т.д)

0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
25.07.2012, 20:13
nexen,

Не по теме:

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

0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.07.2012, 20:18
У меня почему ,то "управляемый" ассоциировалось со сборщиком мусора.
0
25.07.2012, 20:28

Не по теме:

Avazart, но если это так, то он и в c++ есть, а значит код там управляемый? Но ведь это не так, насколько мне известно. Хотя и сборщик мусора тут работает ровно так же, как программист на складе >_<"

Toshkarik, да, я об этом читал и тоже сразу подумал про отладку, но, как я уже говорил, читал, что c++ - неуправляемый, а потому я и вовсе сбился с толку ; (

0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.07.2012, 20:33
Откуда в С++ сборщик мусора? Ну конечно можно реализовать самому например как в книге Шилда.
1
 Аватар для xADMIRALx
70 / 64 / 5
Регистрация: 09.06.2012
Сообщений: 291
25.07.2012, 21:43  [ТС]
Сори за такую тупую тему,погугли вник и попросил Юпитера удалить,но он не удалил
0
25.07.2012, 22:00

Не по теме:

Цитата Сообщение от xADMIRALx Посмотреть сообщение
Сори за такую тупую тему,погугли вник
погуглил, вник, расскажи всем, а тему оставим в назидание!

1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.07.2012, 22:41
Цитата Сообщение от Kastaneda Посмотреть сообщение
Бред... полный...
Не может код, выполняемый в виртуальной машине, выполнятся быстрее кода, выполняемом непосредственно в процессоре.
На самом деле может за счет JIT.
с++ обычно компилируется в бинарный код, при этом компилятор не знает, на какой машине будет исполнятся программа, и вынужден генерировать общий код. А вот С# компилируется в промежуточное представление, и на момент выполнения точно знает, где он выполняется, и за счет этого может использовать платформо-зависимые оптимизации.
1
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.07.2012, 22:50
Цитата Сообщение от diagon Посмотреть сообщение
А вот С# компилируется в промежуточное представление, и на момент выполнения точно знает, где он выполняется, и за счет этого может использовать платформо-зависимые оптимизации.
Цитата Сообщение от diagon Посмотреть сообщение
На самом деле может за счет JIT.
и чё? эти микрооптимизации никому не нужны, что-то я не припомню кардинальных изменений со времен SSE, MMX, etc
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.07.2012, 23:05
Цитата Сообщение от Jupiter Посмотреть сообщение
и чё? эти микрооптимизации никому не нужны, что-то я не припомню кардинальных изменений со времен SSE, MMX, etc
Однако они могут компенсировать тот факт, что с++ исполняется напрямую процессором, а C# виртуальной машиной.

Другое дело, что С++ как язык очень сильно оптимизирован(move semantics, шаблоны, etc), и в более серьезных приложениях шарпу за ним не угнаться.
1
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
26.07.2012, 07:27
Спасибо, это интересно ; )
Но я так и не понял, что же такое "управляемый код" ;<

p.s И да, автор, раз вник, то расскажи и нам ; (
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2012, 08:21
Управля́емый код (англ. managed code) — термин, введённый Microsoft для обозначения кода программы, исполняемой под «управлением» виртуальной машины .NET[1][2] — Common Language Runtime. При этом обычный машинный код называется неуправля́емым кодом (англ. unmanaged code).

Слово управляемый здесь относится к методу обмена информацией между программой и исполняющей средой. Оно означает, что в любой точке исполнения управляющая среда может приостановить исполнение и получить информацию, специфичную для текущего состояния. Необходимая для этого информация представлена в управляемом коде на языке Intermediate Language и в связанных с этим кодом метаданных.

С формальной точки зрения управляемым кодом является любой программный код, исполняемый в среде отладчика.
http://ru.wikipedia.org/wiki/%... 0%BE%D0%B4

Для меня лично непонятно в чем заключается обмен информацией между программой и исполняющей средой и для чего это надо?
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
26.07.2012, 12:31
Avazart, собственно, как я уже говорил ранее, я читал вики и всё равно я.. глуп ; (
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2012, 12:42
Ну так я к чему и привел- что непонятен сам механизм.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.07.2012, 12:42
Помогаю со студенческими работами здесь

Замер скорости выполнения программы или оптимизация проекта
Всем привет, не знаете как лучше замерить скорость программы ?, чтобы можно было сравнить в какой среде (delphi с многопоточностью или c++...

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

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

Есть ли существенная разница в скорости под веб?
Привет! Есть каталог товаров на сервер под веб. С каталогом работают на локальных машинах и данные репликацией отправляют на...

Есть ли разница в скорости между Sata 3 и miniSata
Доброго времени суток . Собираюсь приобрести SSD в ноутбук , мне не нужен CD-привод и есть один свободный miniSata . Вычитал, что можно с...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru