Welche dieser beiden Methoden ist in C effizienter? Und wie wäre es mit: pow(x,3) vs. x*x*x //
Welche dieser beiden Methoden ist in C effizienter? Und wie wäre es mit: pow(x,3) vs. x*x*x //
Alle folgenden Anweisungen machen dasselbe: %eaxauf Null setzen. Welcher Weg ist optimal (erfordert nur wenige Maschinenzyklen)? xorl %eax, %eax mov $0, %eax andl $0,
Ich suche nach einem effizienten Weg, um die Position des niedrigstwertigen Bits zu bestimmen, das in einer ganzen Zahl gesetzt ist, z. B. für 0x0FF0 wäre es 4. Eine triviale Implementierung ist folgende: unsigned GetLowestBitPos(unsigned value) { assert(value != 0); // handled separately...
Betrachten Sie die folgende Funktion: void func(bool& flag) { if(!flag) flag=true; } Es scheint mir, dass wenn ein Flag einen gültigen booleschen Wert hat, dies einer bedingungslosen Einstellung truewie folgt entspricht: void func(bool& flag) { flag=true; } Weder gcc noch clang optimieren...
Vor vielen Jahren waren C-Compiler nicht besonders intelligent. Um dieses Problem zu umgehen, hat K & R das Schlüsselwort register erfunden , um den Compiler darauf hinzuweisen, dass es möglicherweise eine gute Idee wäre, diese Variable in einem internen Register zu belassen. Sie haben auch den...
std::swap()wird von vielen Standardcontainern (wie std::listund std::vector) beim Sortieren und sogar beim Zuweisen verwendet. Die Standardimplementierung von swap()ist jedoch sehr verallgemeinert und für benutzerdefinierte Typen eher ineffizient. Somit kann Effizienz durch Überladen std::swap()mit...
Betrachten Sie den folgenden Code ( pist vom Typ unsigned char*und bitmap->widthhat einen ganzzahligen Typ, der genau unbekannt ist und davon abhängt, welche Version einer externen Bibliothek wir verwenden): for (unsigned x = 0; x < static_cast<unsigned>(bitmap->width); ++x) { *p++...
Geschlossen. Diese Frage entspricht nicht den Richtlinien für Stapelüberlauf . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so dass es beim Thema für Stack - Überlauf. Geschlossen vor 3 Jahren . Verbessere diese Frage Kennen Sie Tools...
So zitieren Sie die Dokumente : Beim Erstellen eines Index gibt die einem Schlüssel zugeordnete Nummer die Richtung des Index an, daher sollte sie immer 1 (aufsteigend) oder -1 (absteigend) sein. Die Richtung spielt keine Rolle für Einzelschlüsselindizes oder für das Abrufen von Direktzugriffen,...
Ich habe eine große Variation der Antwortzeiten in Bezug auf LIKEAbfragen zu einer bestimmten Tabelle in meiner Datenbank festgestellt . Manchmal erhalte ich Ergebnisse innerhalb von 200-400 ms (sehr akzeptabel), aber manchmal kann es bis zu 30 Sekunden dauern, bis die Ergebnisse zurückgegeben...
Dies ist eine Frage zum Bestimmen der CUDA-Raster-, Block- und Gewindegrößen. Dies ist eine zusätzliche Frage zu der hier geposteten . Nach diesem Link enthält die Antwort von talonmies ein Code-Snippet (siehe unten). Ich verstehe den Kommentar "Wert, der normalerweise durch Tuning und...
Ich fand diese Frage, welche Sprachen die Schwanzrekursion optimieren. Warum optimiert C # die Schwanzrekursion nicht, wann immer dies möglich ist? Warum wird diese Methode für einen konkreten Fall nicht in einer Schleife optimiert ( Visual Studio 2008 32-Bit, wenn dies wichtig ist)?: private...
Ich habe zwei C-Programme erstellt Programm 1 int main() { } Programm 2 int main() { //Some Harmless comments } AFAIK, beim Kompilieren sollte der Compiler (gcc) die Kommentare und redundanten Leerzeichen ignorieren, und daher muss die Ausgabe ähnlich sein. Aber als ich die md5-Summen der...
Zusammenfassung: Ich suche den schnellsten Weg, um zu berechnen (int) x / (int) y ohne eine Ausnahme zu bekommen für y==0. Stattdessen möchte ich nur ein beliebiges Ergebnis. Hintergrund: Beim Codieren von Bildverarbeitungsalgorithmen muss ich oft durch einen (akkumulierten) Alpha-Wert dividieren....
Ich bin nicht sicher, ob der folgende Code redundante Berechnungen verursachen kann oder ob er compilerspezifisch ist. for (int i = 0; i < strlen(ss); ++i) { // blabla } Wird strlen()jedes Mal berechnet, wenn
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen...
Der folgende Code funktioniert in Visual Studio 2008 mit und ohne Optimierung. Es funktioniert aber nur unter g ++ ohne Optimierung (O0). #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v...
Was sind einige Tipps, um die Speichernutzung von .NET-Anwendungen zu reduzieren? Betrachten Sie das folgende einfache C # -Programm. class Program { static void Main(string[] args) { Console.ReadLine(); } } Der Task-Manager wurde im Release- Modus für x64 kompiliert und außerhalb von Visual Studio...
Was ist der Unterschied in Dictionary.add(key, value)und Dictionary[key] = value? Ich habe festgestellt, dass die letzte Version ArgumentExceptionbeim Einfügen eines doppelten Schlüssels kein löst , aber gibt es einen Grund, die erste Version zu bevorzugen? Bearbeiten : Hat jemand eine...
Also habe ich versucht, die n- te Zahl in der Fibonacci-Folge so kompakt wie möglich zu schreiben : public uint fibn ( uint N ) { return (N == 0 || N == 1) ? 1 : fibn(N-1) + fibn(N-2); } Aber ich frage mich, ob ich dies durch Ändern noch kompakter und effizienter machen kann (N == 0 || N == 1) in...