Ответы пользователя по тегу Go
  • Почему простой цикл на c++ выполняется медленнее, чем на golang?

    @kr_ilya Автор вопроса
    С добавлением полезной нагрузки в цикл и флага оптимизации -O2 при компиляции на плюсах получились такие результаты
    c++
    #include <iostream>
    #include <chrono>
    
    int main(){
        auto start_time = std::chrono::steady_clock::now();
        long long c = 0;
        for(long long i = 0; i < 1000000000; i++){
            c+=c xor i;
        }
    
        auto end_time = std::chrono::steady_clock::now();
        auto elapsed_ns = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time);
        std::cout << elapsed_ns.count() << " ms\n";
        std::cout << c << std::endl;
        return 1;
    }


    go
    package main
    
    import (
    	"fmt"
    	"time"
    )
    
    func main(){
    	var f int64 = 0
    	var i int64 = 0
    	start := time.Now()
    
    	for i = 0; i < 1000000000; i++{
    		f+=f ^ i
    	}
    	duration := time.Since(start)
    
    	fmt.Println(duration)
    	fmt.Println(f)
    }


    lvh4se1gzwjezybvbpaztmwisme.png

    Всё дело в оптимизации
    Ответ написан