«compiler-optimization» etiketlenmiş sorular

Derleyici optimizasyonu, bir derleyicinin çalışma süresini veya nesne boyutunu veya her ikisini azaltacak şekilde uyarlanmasını içerir. Bu, derleyici bağımsız değişkenleri (örn. CFLAGS, LDFLAGS), derleyici eklentileri (örneğin DEHYDRA) veya derleyicide yapılan doğrudan değişiklikler (kaynak kodunu değiştirmek gibi) kullanılarak gerçekleştirilebilir.

13
Optimize edilmeyecek sonsuz bir boş döngüyü nasıl yapabilirim?
C11 standardı, sürekli kontrol ifadelerine sahip yineleme ifadelerinin optimize edilmemesi gerektiği anlamına geliyor. Tavsiyemi taslak standarttan bölüm 6.8.5'ten alıntı yapan bu cevaptan alıyorum : Kontrol ifadesi sabit bir ifade olmayan bir yineleme ifadesi ... uygulama tarafından sonlandırılacağı varsayılabilir. Bu cevapta, benzer bir döngünün while(1) ;optimizasyona tabi olmaması gerektiği belirtilmektedir. Öyleyse …

3
Bu işaretçiyi kullanmak, sıcak döngüde tuhaf deoptimizasyona neden olur
Son zamanlarda garip bir deoptimizasyonla (veya daha doğrusu kaçırılmış optimizasyon fırsatıyla) karşılaştım. 3 bitlik tamsayılardan 8 bitlik tam sayılara kadar dizilerin verimli bir şekilde açılması için bu işlevi göz önünde bulundurun. Her döngü yinelemesinde 16 girişi paketler: void unpack3bit(uint8_t* target, char* source, int size) { while(size > 0){ uint64_t t …

11
Bir işlevde erken dönüşün etkinliği
Bu, deneyimsiz bir programcı olarak sıklıkla karşılaştığım ve özellikle optimize etmeye çalıştığım iddialı, hız yoğun bir projem için merak ettiğim bir durum. Başlıca C benzeri diller (C, objC, C ++, Java, C #, vb.) Ve bunların her zamanki derleyicileri için bu iki işlev de aynı derecede verimli çalışacak mı? Derlenen …

3
Clang optimizasyon seviyeleri
Gcc günü, manuel açıklar -O3, -Osvb özgü optimizasyon argümanlar açısından çevirmek ( -funswitch-loops, -fcompare-elimvs.) Ben clang için aynı bilgiyi arıyorum . Ben baktım çevrimiçi ve man clanghangi sadece (genel bilgi veren -O2fazla optimize eder -O1, -Oshız için optimize, ...) ve ayrıca Yığın taşması burada baktı ve bulunan bu ama atıf …




1
Neden bir dizinin GCC toplam başlatması, sıfır olmayan öğeler de dahil olmak üzere her şeyi önce sıfırlarla dolduruyor?
Neden gcc tüm diziyi yalnızca kalan 96 tam sayı yerine sıfırlarla dolduruyor? Sıfır olmayan başlatıcıların tümü dizinin başlangıcındadır. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier // forces the compiler to materialize a[] in memory instead of …

2
Java 8: Class.getName (), String birleştirme zincirini yavaşlatır
Son zamanlarda Dize birleştirme ile ilgili bir sorunla karşılaştım. Bu temel ölçü şöyle özetliyor: @OutputTimeUnit(TimeUnit.NANOSECONDS) public class BrokenConcatenationBenchmark { @Benchmark public String slow(Data data) { final Class<? extends Data> clazz = data.clazz; return "class " + clazz.getName(); } @Benchmark public String fast(Data data) { final Class<? extends Data> clazz = …

2
Derleyicim kullanılmayan statik thread_local sınıf üyemi yoksaydı mı?
Sınıfımda bazı iş parçacığı kaydı yapmak istiyorum, bu yüzden thread_localözelliği için bir kontrol eklemeye karar : #include <iostream> #include <thread> class Foo { public: Foo() { std::cout << "Foo()" << std::endl; } ~Foo() { std::cout << "~Foo()" << std::endl; } }; class Bar { public: Bar() { std::cout << "Bar()" …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.