+ Reply to Thread
Results 1 to 11 of 11

Thread: С++ Пишем быстрый код, Твики функций

  1. #1
    V3T's Avatar

    Accept С++ Пишем быстрый код, Твики функций

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

    Вот к примеру такая простая функция как i++ на самом деле не эффективна,
    почему вместо неё следует использовать ++i?
    Реверсинг ПО для незрячих - благородная цель

  2. #2
    ximera's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    ну тут можно и поспорить, смотря для какого случая использовать:)

    А идею с лайфхаками поддерживаю:)
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  3. #3
    V3T's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    К примеру в циклах:
    for( unsigned int i = 0; i < 12; ++i )
    Реверсинг ПО для незрячих - благородная цель

  4. #4
    root's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    Вот к примеру такая простая функция как i++ на самом деле не эффективна, почему вместо неё следует использовать ++i?
    Очередной бред. Вы это сами придумали?

    К примеру в циклах:
    for( unsigned int i = 0; i < 12; ++i )
    Я вам страшное скажу:

    между этим:
    Code:
    for( unsigned int i = 0; i < 12; ++i )
    и этим:
    Code:
    for( unsigned int i = 0; i < 12; i++ )
    Разницы вообще никакой не будет.
    Успех – это путь от провала до провала без потери энтузиазма. (В. Черчиль)

    Не бойся идти медленно, бойся остановиться. (Китайская пословица)

    When you lose fun and start doing things only for the payback, you're dead. (c) TCLH (Phrack 65, Intro)

  5. Пользователь сказал cпасибо:
    ximera (05-04-2012)
  6. #5
    V3T's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    А анализатор PVS Studio говорит, что тут потеря быстродействия
    Реверсинг ПО для незрячих - благородная цель

  7. #6
    root's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    Ну, что я могу сказать, значит на свалке его место.

    Даже если предположить надуманный пример, по типу такого:

    a) result = i++
    b) result = ++i

    В случае "а" он разложится в что-то подобное:

    Code:
    mov eax, i
    mov result, eax
    inc eax
    mov i, eax
    А в случае "b":

    Code:
    mov eax, i
    inc eax
    mov i, eax
    mov result, eax
    И где тут потеря быстродействия? Про:

    for( unsigned int i = 0; i < 12; i++ )
    Я вообще промолчу. Это все равно что "1 + 2 = 3", а "2 + 1 != 3" (PVS Studio).
    Успех – это путь от провала до провала без потери энтузиазма. (В. Черчиль)

    Не бойся идти медленно, бойся остановиться. (Китайская пословица)

    When you lose fun and start doing things only for the payback, you're dead. (c) TCLH (Phrack 65, Intro)

  8. Пользователь сказал cпасибо:
    ximera (05-04-2012)
  9. #7
    V3T's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    Может быть Increase процессор быстрей обрабатывает перед чтением переменной? Хотя сам не очень понимаю
    Реверсинг ПО для незрячих - благородная цель

  10. #8

    Default Re: С++ Пишем быстрый код, Твики функций

    Quote Originally Posted by V3T View Post
    А анализатор PVS Studio говорит, что тут потеря быстродействия
    Это не так. Для unsigned int он промолчит. Диагностическое правило V803 срабатывает только в том случае, когда операция ++it применяется к переменной типа класс. Почему это имеет смысл описано здесь: Есть ли практический смысл использовать для итераторов префиксный оператор инкремента ++it, вместо постфиксного it++.

  11. 2 пользователя(ей) сказали cпасибо:
    V3T (10-04-2012) root (06-04-2012)
  12. #9
    root's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    когда операция ++it применяется к переменной типа класс.
    Тут согласен.
    Успех – это путь от провала до провала без потери энтузиазма. (В. Черчиль)

    Не бойся идти медленно, бойся остановиться. (Китайская пословица)

    When you lose fun and start doing things only for the payback, you're dead. (c) TCLH (Phrack 65, Intro)

  13. #10
    AbreC's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    Немного не в тему (что ли?), но все-таки должен сюда написать:
    Тем, кто хочет выучить Си быстро и эффективно, ищем видео-курс по словосочетанию "Specialist rus C" на 3,14рацкой бу}{те. Очень рекомендую
    You may stop this individual, but you can't stop us all... after all, we're all alike. © The Mentor (Phrack 7, File 3)

  14. #11
    ximera's Avatar

    Default Re: С++ Пишем быстрый код, Твики функций

    AbreC ты про этот курс?
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:35
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org