Keresés

Új hozzászólás Aktív témák

  • Vico87

    tag

    válasz proci985 #1724 üzenetére

    Én így gondolom: ha elfogadható egy felügyelt környezet (Java VM, .NET CLR) overheadje (és az üzleti/web alkalmazások esetében az, webes esetben a PHP-t nem is említve), akkor a C++ függvényhívások overheadje is elfogadható. Ezeknél az alkalmazásoknál a tiszta, karbantartható kód az elsődleges szempont.

    Teljesítménykritikus esetben adott helyzettől függ, hogy mennyit vagyunk hajlandók áldozni az olvashatóságból/érthetőségből a teljesítményért. Néhány esetben megéri a mikrooptimalizálás, ahol már tényleg arra mész, hogy minimalizáld a cache-miss-t, az elágazásokat, stb... de ez általában nem triviális kódot eredményez és kevés esetben hoz látványos pluszt. Persze ha ezt a kódot megfelelően dokumentálod, akkor nincs gond.

    A Visual C++ tud olyat, hogy __forceinline, ami egyrészt kierőszakolja egy függvény inline-osítását, másrészt így az optimalizáló jobb eredményt ad, mert a "hívást" a kontextusával együtt képes feldolgozni.

  • dabadab

    titán

    válasz proci985 #1724 üzenetére

    Altalanos kodban - foleg desktopra szantban (de igazabol egyre inkabb mobilfronton is igaz) - nincs ertelme igazan a sebessegen meg a memorian gorcsolni, ha az ember nem csinal direkt okorsegeket, akkor nem lesz baj. Ha meg megis valahol feltunoen lassunak bizonyul, akkor meg az ember elokapja a profilert es optimalizalja azt az egy helyet, ami lelassitja.

    En hajlamos vagyok maskepp latni a dolgokat, mert munkaidoban mondjuk a viruskereso engine CPU emulatorat pofozom es ha elvaras, hogy minden megtalalt .exe-t futtassa az elso par millio utasitasig, akkor ott tenyleg figyelni kell a sebessegre - ugyanakkor ha nem ilyen kod van, akkor sima C stilusu tomb helyett en is inkabb std::vectort hasznalok es magasrol teszek arra, hogy valamivel tobb processzorido meg memoria kell hozza, a gyakorlatban ezt siman behozza ott, hogy kenyelmesebb a hasznalata meg nincs buffer overflow.

Új hozzászólás Aktív témák