Лучший ответ - то, что ++i
иногда будет быстрее, но никогда медленнее.
Все, кажется, предполагают, что i
регулярный встроенный тип такой как int
. В этом случае не будет никакого измеримого различия.
Однако, если i
составной тип тогда, можно найти измеримое различие. Для i++
необходимо сделать копию класса прежде, чем увеличить его. В зависимости от того, что вовлечено в копию, это могло действительно быть медленнее с тех пор с ++it
, можно просто возвратить окончательное значение.
Foo Foo::operator++()
{
Foo oldFoo = *this; // copy existing value - could be slow
// yadda yadda, do increment
return oldFoo;
}
Другое различие - то, что с ++i
у Вас есть опция возврата ссылки вместо значения. Снова, в зависимости от того, что вовлечено в создание копии Вашего объекта, это могло быть медленнее.
А реальным примером того, где это может произойти, было бы использование итераторов. Копирование итератора вряд ли будет узким местом в Вашем приложении, но это - все еще хорошая практика для вырабатывания привычку использования ++i
вместо i++
, где результат не затронут.
попробуйте Traffic Shaper XP вы можете легко ограничить скорость IE или другого браузера с помощью этого приложения, а также его бесплатного программного обеспечения
Я успешно использовал TMnetSim (внизу страницы, в разделе «Другие инструменты» - по ссылке написано что-то вроде «ZIP: TMnetSim Network Simulator version 2.4 32-bit (600 КБ) »
Это касается не только веб-сайтов - вы можете замедлить подключение к любому TCP-порту. Я использовал его для имитации медленного SQL Server (порт 1433).
В Linux см. netem : ядро уже содержит поддержку формирования трафика и может имитировать высокую задержку, низкую пропускную способность, потери пакетов и всевозможные другие неблагоприятные условия. , даже на устройстве с обратной связью (так что вам не нужна реальная физическая сеть для тестирования).
В моей работе используется этот инструмент, и он кажется неплохим: http://www.dallaway.com/sloppy/
Желаем удачи.
Я восстанавливаю эту ветку, потому что недавно у меня возникла такая же потребность.
Удивительно, но я обнаружил, что для этого можно использовать Fiddler, настроив правила и добавив эту строку oSession ["response-trickle-delay"] = "150";
в раздел OnBeforeResponse
.
Fiddler действительно потрясающий
Попробуйте этот образ VMWare на базе FreeBSD. Там также есть отличный how-to, чисто бесплатный и встает за 20 минут.
Обновление: DummyNet также поддерживает Linux, OSX и Windows