[13:04:51] <valexey_> http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/
[13:04:58] <valexey_> "Back in 80s, it was possible to calculate the speed of the program just by looking at assembly."
[13:06:16] <valexey_> на оберонкоре небось считают, что это до сих пор так :-)
[13:06:22] <valexey_> остались в 80-х :-)
[13:21:06] <TRUE> я не понял: по ссылке что-то полезное или что-то безсполезное?
[13:29:49] <_valexey_> TRUE: смотря кому. Мне было полезно.
[13:36:45] <valexey_> "These days (and on modern CPUs), “simple” operations such as ADD/MOV/OR/… can easily have costs of less than 1 CPU cycle. "
[13:42:04] <TRUE> если речь о тактах, то да. Сложить два целых быстрее, чем умножить. Но сложение всё равно будет занимать целый такт. Потому что действия запускаются тактами. Это грубое утверждение, но подробности я уже забыл. Помню, были разработки безтактовых машин, но там были свои нюансы. Однако такие машины энергоэффективнее и производительнее при прочих равных.
[13:53:41] <valexey_> а еще умножение/деление чисел с плавающей точкой быстрее чем целочисленные операции :-)
[14:00:03] <TRUE> Это если по четыре операции за раз делать? На сопроцессорах всяких?
[14:00:39] <TRUE> Кстати, раз с плавающей точкой так быстро, то почему они не соптимизируют и целые числа?
[14:08:37] <_valexey_> TRUE:нет
[14:08:43] <_valexey_> Одиночная
[16:38:01] <valexey> хез. видимо в основном идет числодробление на плавающей точке. Алсо плавающей то отдельный дивайс вообще занимается - fpu. У которого свой мозг.
[17:53:01] <vlad2> Да, статься итересная для рекогносцировки :)
[17:56:09] <vlad2> Там еще в эпичном треде по синтаксическому оверхеду Губанов утрерждал, что на обероне пишет IF/ELSE так, чтобы первая ветвь чаще исполнялась, потому что оно быстрее с точки зрения разтактовки :) А не-обероны имеет тенденцию делать чего хотят и поэтому мастдай :)
[17:56:57] <vlad2> Народ был в шоке :)
[21:49:54] <vlad2> Интересный паттрн скрещтвания C++ и ObjectiveC: если надо привязать C++ объект к времени жизни Objective C объекта и при этом C++ объек имеет нетривиальный конструктор.
[21:53:03] <vlad2> @interface obj_c_class
   {
   boost::optional<cpp_class> cpp;
   }
@end

@implementation obj_c_class
- (id) init_with: (args const&) args
   {
   self->cpp = boost::in_place( boost::cref( args ) );
   }
@end
[21:53:58] <vlad2> Интересно, как все это сделать без буста... optional вроде только собираются в стандарт перенести...
[23:11:15] <_valexey_> vlad2: он уже есть там
[23:11:23] <_valexey_> В 14 или 17 плюсах
[23:16:45] <vlad2> 17
[23:18:09] <vlad2> Долго думали.