powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS2012: Как посмотреть реализацию функции sin(x)?
18 сообщений из 68, страница 3 из 3
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093657
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вводится ли новая функция или заменяется старая?

Естественно, заменяется реализация старой.

Как это отражается на производительности?

Либо никак, либо ухудшается.
На самом деле наверное иногда может и увеличиваться, за счет большей локальности обращения к памяти.
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093723
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно. Ты даёшь ссылку на ветку где тебя нет в качестве участника.
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093743
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanV
Ну, например, здесь: /topic/945804&pg=2&hl=stl

Вообще-то конкретно в этой теме было разобрано, что задержка в векторе возникает из-за двух факторов:
1) Медленная реализация дебаг режима в VS.
2) в момент выделения памяти для вектора она всегда инициализируется.

Т.е. если отделить выделение памяти от алгоритма и запускать все в релиз сборке, никаких тормозов нет.
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093747
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНепонятно. Ты даёшь ссылку на ветку где тебя нет в качестве участника.
Так может это Poslushnik.
Ну по крайней мере религия у них одна и та же.
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093750
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskymaytonНепонятно. Ты даёшь ссылку на ветку где тебя нет в качестве участника.
Так может это Poslushnik.
Ну по крайней мере религия у них одна и та же.
Ну конечно-же мы тут все - психоаналитики...
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093753
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyТ.е. если отделить выделение памяти от алгоритма и запускать все в релиз сборке, никаких тормозов нет.
А вот пример когда STL даже круче по скорости С-шного стиля.
http://www.sql.ru/forum/actualthread.aspx?tid=791634
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093772
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyА вот пример когда STL даже круче по скорости С-шного стиля.
http://www.sql.ru/forum/actualthread.aspx?tid=791634
А, не, это не то - там задержка в С из-за float.

Ну ничего, зато std::sort точно быстрее С-шного qsort :)
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093819
sherzod_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

std::generate_n тоже быстрее С-стиля, если сишник будет заполнять через цикл с индексом :). Например
Код: plaintext
1.
for (std::size_t i = 0; i < size; ++i) arr[i] = i;


будет медленнее (у меня в 2 раза, i7, vs2012, x64)
Код: plaintext
1.
2.
class inc { std::size_t m_i; public: inc(): m_i(static_cast<std::size_t>(0)) {} inline std::size_t operator()() { return m_i++; } } i;
std::generate_n(v.begin(), size, i);

из-за использования инкрементирования указателя что более предсказуемо, а если сишник тоже применит ++ указателей, то по крайней мере будет ничья :).
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093889
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sherzod_,

Я боюсь только что это все не аргумент для человека, который впервые видит С/С++ (судя по этой теме ), но уже уверен что STL тормозит :)
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093975
GermanV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyВообще-то конкретно в этой теме было разобрано, что задержка в векторе возникает из-за двух факторов:
1) Медленная реализация дебаг режима в VS.
2) в момент выделения памяти для вектора она всегда инициализируется.

Т.е. если отделить выделение памяти от алгоритма и запускать все в релиз сборке, никаких тормозов нет.

Не понимаю, зачем врать? Там и для релиз приведены данные замеров: падение в 2,5 раза. А что бывает заполнение памяти без ее выделения?
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38093978
GermanV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyА, не, это не то - там задержка в С из-за float.

Ну ничего, зато std::sort точно быстрее С-шного qsort :)

qsort быстрее. Сам ставил эксперименты на реальных данных, и любой может тоже их проделать. Зачем врать? Во имя религии STL?
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38094022
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanV,

Никто не говорил что безопасность контейнеров STL дается бесплатно.
Цена - придется слегка подумать как сделать скорость не хуже.

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

Заполнение памяти без выделения не бывает. Но никто этого и не требует.

Про qsort, когда у меня будет время - померяемся :)
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38094029
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanVAnatoly MoskovskyА, не, это не то - там задержка в С из-за float.

Ну ничего, зато std::sort точно быстрее С-шного qsort :)

qsort быстрее. Сам ставил эксперименты на реальных данных, и любой может тоже их проделать. Зачем врать? Во имя религии STL?
Давайте вместе тестить. Я тоже слышал такую тему что std::sort быстрее но
очевидно что есть нюансы в самом тесте. Как вы его реализовали?
Какой тип данных в шаблоне? Каков объём выборки? Какие начальные
условия? Большинство gap-ов в таймингах образуются оттого что
новички не учитывают время бутстрапа самой процедуры, статических
конструкторов в main() и прочих инициализаций. Компилляторы, ключи
компилляции тоже важны наверное.
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38094077
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky Но например в VS2008 уже нет однопоточной стандартной библиотеки С/С++.

Есть, но только статическая.
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38094088
sherzod_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonGermanVпропущено...
qsort быстрее. Сам ставил эксперименты на реальных данных, и любой может тоже их проделать. Зачем врать? Во имя религии STL? Давайте вместе тестить. Я тоже слышал такую тему что std::sort быстрее но
очевидно что есть нюансы в самом тесте. Как вы его реализовали?
Какой тип данных в шаблоне? Каков объём выборки? Какие начальные
условия? Большинство gap-ов в таймингах образуются оттого что
новички не учитывают время бутстрапа самой процедуры, статических
конструкторов в main() и прочих инициализаций. Компилляторы, ключи
компилляции тоже важны наверное. Ну дак а что там тестить :). Очевидно же что встроенное сравнение занимающее одну инструкцию (для простых типов), выполнится быстрее целого вызова функции которой в qsort ну никак не избежать (ибо уже скомпилен), при прочих равных условиях.
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38094142
GermanV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему собственно вопрос возник: тут вот ( http://msdn.microsoft.com/en-us/library/ms682516%28v=vs.85%29.aspx) сразу после кода есть такие строки:

"The MyThreadFunction function avoids the use of the C run-time library (CRT), as many of its functions are not thread-safe, particularly if you are not using the multithreaded CRT. If you would like to use the CRT in a ThreadProc function, use the _beginthreadex function instead."

Вот я и заволновался почему же это функции CRT "are not thread-safe", особенно те, что "are not using the multithreaded CRT". Может кто-нить пояснит, что они имеют ввиду?
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38094150
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanVМожет кто-нить пояснит, что они имеют ввиду?
Чтобы понять что они имеют ввиду, тебе надо изучить что такое потоки, как они работают и
какие создают опасности. Читай Рихтера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VS2012: Как посмотреть реализацию функции sin(x)?
    #38094167
GermanV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Модератор: Заканчиваем огрызаться и провоцировать на грубость.
...
Рейтинг: 0 / 0
18 сообщений из 68, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS2012: Как посмотреть реализацию функции sin(x)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]