abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:44 | Zajímavý článek

    Před 32 lety, 6. června 1993, byl spuštěn první český WWW server (ještě pod TLD .cs), pro potřeby fyziků zabývajících se problematikou vysokých energií.

    Ladislav Hagara | Komentářů: 4
    včera 16:11 | Zajímavý software

    Střílečku Borderlands 2 lze v rámci výprodeje série Borderlands na Steamu získat zdarma napořád, když aktivaci provedete do 8. června 19:00.

    Ladislav Hagara | Komentářů: 6
    včera 15:11 | Nová verze

    Byla vydána nová verze 2.22 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    5.6. 15:00 | Komunita

    Canonical Launchpad vypíná systém správy verzí Bazaar. Vývojáři mohou své repozitáře do 1. září přemigrovat na Git.

    Ladislav Hagara | Komentářů: 7
    5.6. 13:22 | Nová verze

    Byla vydána nová verze 2.53.21 svobodného multiplatformního balíku internetových aplikací SeaMonkey (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 3
    5.6. 12:33 | Komunita Ladislav Hagara | Komentářů: 19
    5.6. 11:22 | Komunita

    Na Indiegogo byla spuštěna kampaň na podporu linuxového telefonu Liberux NEXX s osmijádrovým procesorem Rockchip RK3588S, 32 GB LPDDR4x RAM a 6.34″ 2400×1080 OLED displejem. Cena telefonu je 1 310 eur.

    Ladislav Hagara | Komentářů: 5
    5.6. 11:11 | Komunita

    Miro Hrončok vyhrál volby do Fedora Council. Mezi sedmi kandidáty, kteří se ucházeli o dvě křesla, nakonec získal nejvíce hlasů - 1089. Česká komunita má tak po delší době opět zástupce v nejvyšším orgánu Fedory.

    Ladislav Hagara | Komentářů: 0
    5.6. 04:33 | Zajímavý software

    Redox OS (Wikipedie), tj. mikrokernelový unixový operační systém naprogramovaný v programovacím jazyce Rust, nově podporuje X11 a GTK 3.

    Ladislav Hagara | Komentářů: 0
    5.6. 02:55 | IT novinky

    Dnes po celém světě startuje prodej herní konzole Nintendo Switch 2.

    Ladislav Hagara | Komentářů: 10
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (33%)
     (7%)
     (2%)
     (0%)
     (0%)
     (3%)
    Celkem 221 hlasů
     Komentářů: 14, poslední 2.6. 08:30
    Rozcestník

    Jednoduchá cache pro R-O-R aplikace

    15.3.2006 17:56 | Přečteno: 1017× | Ruby

    Píšu takovou středně velkou aplikaci v Railsech. Teda backend je R-O-R a frontend je především XUL. Takže různé seznamy tlačím se serveru do Gecka ve formátu RDF, kdy nahrazuji různá ID hodnotami z číselníků.

    Iritovalo mě, jak ActiveRecord na každý záznam v RDF šahá do databáze pro všechny číselníky. Tak jsem napsal následující modul: Acts::SimpleCache, který jednoduše cachuje číselník v hashi v paměti.

    module ActiveRecord
      module Acts
        module SimpleCache
          def self.append_features(base)
            super
            base.extend(ClassMethods)
          end
    
          module ClassMethods
            def acts_as_simple_cache(options = {})
              class_eval do
                after_save { @f_cache = {} }
    
                def self.find(*args)
                  begin
                    if ( (args.length==1) or not args[1].has_key?(:conditions) )
                      logger.debug( "SimpleCache[" + table_name + 
                                    "]::find(" + args[0].to_s + ") - using cache" )
                      @f_cache ||= {}
                      return @f_cache[args[0]] ||= super
                    end
                  rescue => e
                    logger.error( "SimpleCache: exception #{e.class}: #{e.message}" )
                  end
                  super
                end
              end
            end
          end
        end
      end
    end
    
    ActiveRecord::Base.class_eval { include ActiveRecord::Acts::SimpleCache }
    
    

    Použití je takhle snadné:

    class Tvar < ActiveRecord::Base
      has_many :cards
      set_table_name "tvary"
    
      acts_as_simple_cache
    end
    

    Řádek acts_as_simple_cache vložený do definice modelu způsobí, že všechny číselníkové lookupy do tohoto modelu, ktere ActiveRecord generuje půjdou přes cache.

    Zasloužilo by si to učesat, ale jak to je to splňuje účel. Konkrétní akci - generování RDF na různých modelech s počtem číselníků kolem 8-12 jsem zrychlil o 40-60%.

           

    Hodnocení: 67 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    xvasek avatar 15.3.2006 21:51 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Jednoduchá cache pro R-O-R aplikace
    Čím se bavíš, to opravdu zůstává rozum stát. :)

    No je pravda, že WebISu by urychlení prospělo. Při posledním přechodu (kvůli novému mailovému rozhraní) se doba odezvy serveru přibližně zdvojnásobila, ale to jsem přičítal spíš nějaké zapomenuté blbosti nebo špatné konfiguraci a nestálo mi to ani za to, abych napsal mail. Co je pro mě důležitější je odezva na pomalé lince (např. GPRS), kde už je limitujícím faktorem spíš množství dat a WebIS mi přijde, že tady zrovna moc optimalizovaný není. Naproti tomu když má někdo dost rychlou linku, tak si místo 0,25 vteřiny počká 0,5, to se nic neděje.

    Energii bych osobně věnoval v tomto pořadí:

    1) Dokumentový server, verzování dokumentů, fulltextové vyhledávání...

    2) Nějaký CMS (aspoň nástěnka pro administrátora)

    3) Stabilizace samby

    4) Psaní rozhraní, které odbourávají práci roota (obnovení záloh, správa souborů...)

    5) Optimalizace rychlosti

    ...ale to je jenom příspěvek pod blogem, chápu, že hostingové servery s těma prioritama hýbou úplně jinak, než nějaký Stodůlka. :-)
    16.3.2006 08:31 Martin Povolný | blog: Krev na widlich | Brno
    Rozbalit Rozbalit vše Re: Jednoduchá cache pro R-O-R aplikace

    Milej zlatej, se zrychlením pošty po posledním upgrade jseš vedle jak ta jedle.

    Zrychlení je způsobeno tím, ze poštovní rozhraní je kompletně přepsané. Převzaný a upravený PHP kód byl nahrazený nesrovnatelně kvalitnější implementací v RUBY. Tím PHP kompletně vypadlo z konfigurace apache -- jsme nyní úplně PHPfríí (alespoň tam, kde si v tom něco neplácá zákazník).

    Honza šel tak daleko, že optimalizoval IMAPovou knihovnu standardně dodávanou s RUBY -- když zagoogluješ, tak narazíš na moje snahy to tlačit do upstreamu.

    Ad úpravy Cyrusu v posledních dvou blogpostech: ano, projeví se to hlavně na hostingu, ale i všude tam, kde zákazníci přistupují k pošte přes WebIS. Není to tvůj případ?

    Ad čím se bavím -- do toho Ti nic není ;-) Ale vážně, víš, co jsou to hříhy mládí? Ne? Tak věz, že jsem někdy studoval postgraduál na informatice a že jsem se snažil dělat do slovníků. No a jedna nejmenovaná instituce tehdy žádala o grant na tvorbu nového slovníku a jak na sviňu jsem tam byl napsaný jako řešitel....

    Jak to v životě chodí, ve chvíli, kdy jsem to na FI začal balit, tak vyšel ten grant a já se ocitl v situaci, kdy na mém software, kterým bych se už třeba ano moc nechtěl zabývat, běží tvorba slovníku, na které má po dobu 3 let dělat team cca 10 lidí...

    Teď ještě k tvým prioritám:

    1) dokumentový server: ve fázi plánování je ten full-text, další DMS features až později

    2) CMS: v práci mame do WebIS zaintegrováno wiki, ale není to přesně to, co bychom chtěli dávat zákazníkům, probíhají experimenty s wysiwyg editory.

    3) samba - na tom intenzivně pracuju, když si zrovna "nehraju" s XULem , XBL a Railsama ;-)

    4) rozhraní... - ano, v práci je management databází, klíčů do VPN, ve fázi plánování jsou další věci -- management DHCP, přístup k zálohám, ...

    5) optimalizace rychlosti -- věčný problém, běh na dlouhou trať -- viz předchozí 2 blogposty...

    xvasek avatar 16.3.2006 21:40 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Jednoduchá cache pro R-O-R aplikace
    No tak si to čtu a mám z toho pocit, že jsem tě buď naštval (za což se omlouvám), nebo máš blbou náladu. Každopádně pokud to bylo pochopeno tak, že si tady veřejně stěžuju, tak jsem to tak rozhodně nemyslel. Já jsem spokojený uživatel, těším se na každou novinku a nebojím se ani beta-testovat a kdybyste mi dali přístup ke kódu, tak bych občas i něco opravil. Tady ty věci jsem psal jako komentář k blogu z toho důvodu, že se mi nechce otravovat na hotline, protože v poslední době vypadáte, že toho máte fakt hodně. Prostě jsem chtěl, abys tady ty moje "rady" mohl v poklidu ignorovat...
    16.3.2006 22:58 Martin Povolný | blog: Krev na widlich | Brno
    Rozbalit Rozbalit vše Re: Jednoduchá cache pro R-O-R aplikace
    Ne, nenaštval ;-) Ja sám jsem takovej ironickej protivnej rejpal, taky možná trošku agresivněji reaguju, když mám pocit, že někdo rejpá do mě, byť jen v náznaku, prostě jsem takovej protiva.

    Že toho máme troštu víc, to je pravda, přebíráme teď takovou větší záležitost... A druhou stranu, to je život, a je to lepší, než nemít do čeho píchnout.

    Máme teď novýho kolegu -- znáš Jeníka? Tak toho. Pomalu se rozkoukává, ale jak pomine prvotní šok z toho, že má místo v PERLu programovat v RUBY a odsazovat na 4 mezery a zvykne si, že když na něj někdo vrrrrčí (třeba Mára), tak to neznamená nic zlého (ba naopak), zapracuje se, tak potom bude třeba zase volněji...
    16.3.2006 23:01 Martin Povolný | blog: Krev na widlich | Brno
    Rozbalit Rozbalit vše Re: Jednoduchá cache pro R-O-R aplikace
    Každopádně se nemáš za co omlouvat a naopak já děkuji za zájem a promiň, že jsem na tebe na potkání vybafl.
    xvasek avatar 17.3.2006 09:09 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Jednoduchá cache pro R-O-R aplikace
    Jeníka zatím neznám, uvidíme. Jenom pořád nechápu to vaše Ruby. :-)

    Stejně je to sranda. Když ještě frčela jenom válka mezi Perlem a PHP, tak jsem čekal, že i přes počáteční náskok PHP zvítězí nakonec Perl. Postavil jsem se na "správnou" stranu a čekal, co z toho vyleze. No a teď se tak dívám kolem sebe a vidím, že se směje třetí (Python) respektive čtvrtý (Ruby) a Perl nebo PHP? Skoro jsem se už několikrát chtěl podívat na Python, ale nakonec jsem si řekl, že mi Perl vlastně vyhovuje a co používají ostatní je mi celkem jedno.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.