Если исходить из поставленной задачи " как быстрее" сделать равной... То надо сокращать возможные условности и операции. На мой взгляд switch, будет самым быстрым на уровне ассемблерных регистров.
А остаток от деления, дорогая операция. Так писал Ренат.
Если исходить из поставленной задачи " как быстрее" сделать равной... То надо сокращать возможные условности и операции. На мой взгляд switch, будет самым быстрым на уровне ассемблерных регистров.
А остаток от деления, дорогая операция. Так писал Ренат.
Обратите внимание, я ни слова не сказал о полезности вашего варианта, пользуйтесь чем хотите. Ведь я никому ничего не навязываю.
О скоростях выполнения можно было говорить на компах Pentium или раньше…
Обратите внимание, я ни слова не сказал о полезности вашего варианта, пользуйтесь чем хотите. Ведь я никому ничего не навязываю.
О скоростях выполнения можно было говорить на компах Pentium или раньше…
Вроде делимся своим взглядом, без претензий на уникальность. И о навязывании, не может быть и речи. Странная и не понятная ваша позиция, сразу в стойку ))
Хм... Действительно, получается одна операция, нет ветвлений. switch избыточен.
но switch правильнее. За оптимизацию int toggle_value(int &x) { return x=x^1; } бьют. Потому-что оптимизируется мизер, а когда у 'x' появится 3-е допустимое значение (он-же int, это будет) в проекте появится сложноуловимый глюк
Микрооптимизации типа × ^= 1 полезны только в том случае, если они лежат на "горячем пути" вашей программы, где код будет выполняться много или очень часто.
Но если код, содержащий это выражение, составляет, скажем, 1 % от общего времени выполнения (т. е. является "холодным местом"), то даже 100-кратное ускорение этого выражения не принесет никакой пользы, поскольку общее время выполнения все равно составит 99,01 % (0,99 основного пути + 1/100) от исходного неоптимизированного кода.
Профилировщик полезен для обнаружения таких "бутылочных горлышек" в вашей программе.
ещё один
Если исходить из поставленной задачи " как быстрее" сделать равной...
То надо сокращать возможные условности и операции.
На мой взгляд switch, будет самым быстрым на уровне ассемблерных регистров.
А остаток от деления, дорогая операция.
Так писал Ренат.
еще
Если исходить из поставленной задачи " как быстрее" сделать равной...
То надо сокращать возможные условности и операции.
На мой взгляд switch, будет самым быстрым на уровне ассемблерных регистров.
А остаток от деления, дорогая операция.
Так писал Ренат.
Обратите внимание, я ни слова не сказал о полезности вашего варианта, пользуйтесь чем хотите. Ведь я никому ничего не навязываю.
О скоростях выполнения можно было говорить на компах Pentium или раньше…
Обратите внимание, я ни слова не сказал о полезности вашего варианта, пользуйтесь чем хотите. Ведь я никому ничего не навязываю.
О скоростях выполнения можно было говорить на компах Pentium или раньше…
Вроде делимся своим взглядом, без претензий на уникальность.
И о навязывании, не может быть и речи.
Странная и не понятная ваша позиция, сразу в стойку ))
На мой взгляд switch, будет самым быстрым на уровне ассемблерных регистров.
Предполагаю, что XOR-вариант быстрее.
Предполагаю, что XOR-вариант быстрее.
Хм...
Действительно, получается одна операция, нет ветвлений.
switch избыточен.
Хм...
Действительно, получается одна операция, нет ветвлений.
switch избыточен.
но switch правильнее. За оптимизацию int toggle_value(int &x) { return x=x^1; } бьют. Потому-что оптимизируется мизер, а когда у 'x' появится 3-е допустимое значение (он-же int, это будет) в проекте появится сложноуловимый глюк
поэтому или switch, или x должен быть bool.
Такой цикл пройдется по всем чартам, включая даже вложенные друг в друга варианты OBJ_CHART (для которых был вызван OBJPROP_CHART_ID)