Rychlost MacOS X - základy - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Jaký fotograf/ka získal/a cenu za nejpopulárnější příspěvek v Nikon Photo Contest?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Software

Rychlost MacOS X - základy

macosearly

13. ledna 2003, 00.00 | Na čem je vlastně rychlost počítače závislá? Jak ji ovlivňuje programátor nebo uživatel? Odpovědi na tyto a mnohé další otázky najdete v seriálu o rychlosti OSX.

Dnešní článek je založen na informacích, které jsem získal ve vývojářské skupině "> a na internetu na řadě míst a v několika diskusních skupinách - jejich stručný seznam najdete na konci článku. Jeho účel vidím v tom, že shrnuje názory z více stran, takže výsledkem je sice poměrně stručná, ale na druhou stranu zase bohatá názorová směs. Protože u toho tématu se nedá dost dobře vyhnout technickým termínům, najdete jejich krátké vysvětlení také na konci textu.

Nejdříve bych se rád pozastavil nad jednoduchou úvahou. Na čem je vlastně rychlost počítače závislá? A přestože se jedná o otázku jednoduchou, odpověď na ni je nepoměrně složitější. Už samotný pojem rychlost počítače je velmi subjektivní, protože vývojář očekává něco jiného než běžný uživatel a ten zase něco úplně jiného než statistik, zpracovávající miliony záznamů. A od těchto požadavků jsou pak na hony vzdálené údaje, kterými nás „krmí“ PR oddělení výrobců procesorů, ostatního hardware a operačních systémů.

Podle mého názorů naprostá většina uživatelů, ať jsou to z jakékoliv jmenované skupiny, porovnávají rychlost počítače podle subjektivního hlediska – odezvy operačního systému nebo své nejoblíbenjěší aplikace na požadavky. Mezi ně patří například: rychlost spouštění aplikace, odezva na kliknutí do menu, případně na změnu velikosti okna. V poslední době, tím, jak se internet stává pro rostoucí množství uživatelů každodenním chlebem, se do výše uvedených požadavků zařadila také rychlost zobrazení stránky v internetovém prohlížeči.

Přesto, že jsem na počítače Apple Macintosh a operační systém MacOS X hodně zatížen, musím velmi kriticky uznat, že v parametrech výše uvedených zaostáváme. Nechci být označen za nějakého buřiče, ani se nechci nijak zaplést do nikdy nekončící diskuse mezi uživateli MacOS a Windows, ale vzhledem k tomu, že musím každodenně pracovat na obou platformách vím, že to je pravda. Ale zároveň jedním dechem dodávám, že jako zatvrzelý „mekista“ bych neměnil. O tom ale tento článek nemá být a nebude. Slibuji. V celé další části budu popisovat ne rozdíly mezi MacOS a Windows, ale mezi různými aplikacemi pro MacOS X.

Jak jistě všichni víte a tady na serveru www.mujmac.cz to bylo několikrát popsáno, sestává se operační systém MacOS X z několika vrstev. Tyto vrstvy se dají porovnávat a rozdělovat podle několika kritérií, ale pro náš učel si vybereme rozdělení podle API. Pro vysvětlení a názornost se prosím podívejte na následující obrázek. Jsou na něm vyznačeny ty vrstvy, které nás zajímají. Jak vidíte, úplně dole je jádro, kernel označovaný jako Mach. Jádro se stará o služby nejnižší úrovně, jako jsou správa virtuální paměti, rozdělování procesů procesorům, multithreading a podobně. Nad jádrem jsou vrstvy, které nás budou zajímat, jsou to Carbon a Cocoa. Javu a BSD vynecháme, protože o Java vrstvě nic nevím a dozvěděli byste se ode mne nanejvýš sbírku hloupostí, a BSD mám (sice z jiného pohledu) připravené pro některý z dalších článků a spoustu informací můžete najít v musíte-si-přečíst sérii článků Ondry Čady. Carbon a Cocoa jsou termíny hodně omílané ve všech médiích, mezi všemi laiky i jejich zasvěcenějšími verzemi. Co to však znamená z programátorského hlediska už všem tak jasné není.

Všichni sice dokola opakujeme, že Carbon používají ti, kteří měli již své aplikace napsané pro dřívější verze operačního systému MacOS, ale proč to tak je, případně, že to vůbec nemusí být pravda, se už dozvědět nemusíte. Nejdříve bych vám rád udělal velmi rychlou a povrchní exkursi do oblasti programovacích jazyků. Z mé zkušenosti a teď všichni programátoři méně používaných jazyků (ASM, LISP, Fortran, lex, yacc a mnohé další) prominou, se používají jazyky Pascal, rodina jazyků na základě C (C++, Objektive C, Objektive C++), Java, Basic, Apple Script. Vím, že jsem nezmínil webové jazyky, ale v tuto chvíli je nepotřebujeme. Pascal je rozhodně na úbytě, protože v tuto chvíli není žádný kompiler pro OSX.
Protože jsem programoval v C++ a snažím se programovat v Objective-C, rád bych se zastavil u těchto dvou. Pro ty, kteří to nevědí, jsou C++ i Objective-C nadstavbou nad jazykem C, takže se to, co je napsané v C, lze použít i v C++ a Objective-C.

API - application programing interface. Rozhraní pro programátora. Spočívá v tom, že programátor dostane k použití knihovny a hlavičky, ve kterých jsou popsané funkce. Jako příklad uveďme třeba funkci na načtení obrázku ze souboru (v Cocoa):

NSImage
- (id)initWithContentsOfFile:(NSString *)filename

Carbon
Aplikace označované jako Carbon jsou z naprosté většiny aplikace vytvořené od dvou kategorií programátorů.

  • a) Dlouhodobí vývojáři pro počítače Macintosh, kteří již měli své aplikace napsané pro předchozí verze systému MacOS a chtěli relativně jednoduše uvést své aplikace na MacOS X
  • b) Vývojáři, kteří vidí svůj osud v používání C++

Cocoa
Hledáte-li nějakou typickou Cocoa aplikaci, podívejte se na všechny iAplikace od Apple. Pak můžete započítat všechny aplikace od bývalých programátorů pro NeXTStep/OpenSTEP jako je například sada aplikací Create od společnosti Stone a mnohá další. A všichni vývojáři, kteří jsou unešeni jednoduchostí programování v Objective-C.

BSD
Varianta UNIXu, použitá pro OS X.

Seznam odkazů
http://www.unsanity.org
http://www.apple.com/developer
http://www.arstechnica.com
http://www.byte.com/documents/s=7692/byt1035828368066/1028_bar.html
http://www.osxfaq.com
http://cocoadevcentral.com/
http://www.macdevcenter.com/mac/
http://www.stepwise.com/

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

C++ není C!

Autor: OC Muž

Založeno: 13.01.2003, 19:55
Odpovědí: 0

Pozor, C++ není zpětně kompatibilní s Céčkem. Úplně stačí použít např. jako jméno identifikátoru některé z klíčových slov C++ -- a jsou tam i horší podrazy (nekompatibilita pointerů, jiná interpretace void,...). Mimochodem, ObjC tento problém nemá.

Jinak díky za reklamu ;), ale ta série o vlastním BSD moc není, spíše je zaměřena na jeho uživatelské rozhraní. BSD API tam ale nepopisuju. Pokud by o to měl někdo zájem, samozřejmě mohu; jelikož ale Martin nechce ani API Cocoa :((((, tak počítám BSD nemá smysl už vůbec...

Odpovědět na příspěvek

RE: C++ není C!

Autor: Robert Černý Muž

Založeno: 14.01.2003, 08:26

Proboha,
takovou blbost tam snad nikde nemám, možná jsem se jen špatně vyjádřil....

Odpovědět na příspěvek

API

Autor: Ondra Nekola Muž

Založeno: 14.01.2003, 09:35

Jakto nechce?
To, ze nema prilis cenu rozpatlavavat UNIX API je vcelku zrejme, zdroju existuje mnoho a to i v cestine. Ale Cocoa, to je jine kafe ;)
Rozhodne by mi to prislo zajimavejsi nez spekulace, jakou barvu bude mit novej xMac nebo kolik bude stat model uvedeny za pul roku, kdyz stejne ani neni jiste, ze bude neco uvedeneho.

Odpovědět na příspěvek

RE: API

Autor: Martin Ler Muž

Založeno: 14.01.2003, 09:50

Nezlobte se na me, ale kolik vas bude, tech kteri prakticky tento serial k necemu vyuziji? 20? 50? Domnivam se, ze lide, kteri maji zajem se naucit doopravdy programovat, jsou anglickeho jazyka znali a schopni pracovat se zdroji na internetu ci si zakoupit prislusnou odbornou literaturu. Neco jineho je napriklad serial o terminalu, ktery je urcen pro relativne sirokou uzivatelskou obec - a i ten je pochopitelne cteny mnohem mene nez "mainstreamove" clanky. Takze proste rozjet serial, ktery by mel bezet rok ci dva aby mel nejaky opravdu realny efekt, a tedy ho zaplatit, se z meho pohledu nevyplati. A delat to jen jen proto, "aby jsme to meli v cestine" mi prijde trosku zbytecne.

Ad spekulace - tem se, pokud ctete MujMACa, venujeme relativne zridka, pouze kdyz je k tomu nejaky realne podlozeny duvod (tedy nove modely na spaadnuti - obvykle kolem Expa). Jinak se snazim MujMACa koncipovat tak, aby obsahoval clanky prinasejici realny uzitek a prinos.

Pokud s timto mym tvrzenim nesouhlasite, tak sve pripominky prosim specifikujte, pripadne muzete rovnou rozsirit redakcni tym.

Odpovědět na příspěvek

RE: RE: API

Autor: agent Muž

Založeno: 14.01.2003, 21:24

20? 50? to jsi optimista... ja bych odhadoval do 5-10... jde o to, ze muzes udelat graf ctenosti clanku, o necem by to hovorit mohlo -- kolik lidi precte, ohodnoti a diskutuje pod nim, to jsou jiz udaje, ze kterych se da velmi slusne vychazet... ...bez cisel je to ale vse jen vareni z vody...

ad spekulace -- jen to ne... to je cesta do pekel... spekulace jsou u apple to nejslozitejsi co si vubec lze predstavit, 90% co je na netu jsou jen naproste blaboly...

Odpovědět na příspěvek

RE: RE: RE: API

Autor: Jojo Muž

Založeno: 15.01.2003, 03:15

Ahoj,
"90% co je na netu jsou jen naproste blaboly".... zlata slova, pane Agente :)))) Vlastni zkusenost? :))))

Odpovědět na příspěvek

RE: RE: API

Autor: Ondra Nekola Muž

Založeno: 15.01.2003, 17:45

Priznam se, ze nevim, kde berete jistotu, ze ostatni clanky nikoho zajimaji :) Dost casto se pristihnu, ze nejaky clanek, treba o DTP jen otevru a preletnu ocima...
K tomu aktualni uspech clanku neni zcela smerodatny. Jsou clanky, ke kterym se lide vraceji a ktere byvaji casto anchazeny za pomoci webovych vyhledavacu. Takove pak byvaji ridce, ale po dlouhou dobu navstevovany.

Odpovědět na příspěvek

RE: RE: RE: API

Autor: Martin Ler Muž

Založeno: 15.01.2003, 17:57

Ze ctenosti, diskusi, hodnoceni, ohlasu.

Odpovědět na příspěvek

RE: RE: RE: RE: API

Autor: agent Muž

Založeno: 15.01.2003, 18:39

myslim, ze mujmac.cz jiz bezi dost dlouho na to, aby se dal udelat nejky verejny prehled toho co jeho ctenare zajima nejvic... minimalne ctenost je presne sledovatelna a mohlo by to byt uzitecne pokud by se z tech cisel dostalo neco vic nez jen poradi 1 az 10 ;-)

Odpovědět na příspěvek

RE: RE: RE: RE: RE: API

Autor: Martin LEr Muž

Založeno: 15.01.2003, 18:47

A jak by sis to asi predstavoval? Prehled toho co lidi nejvic cetli a nejvic diskutovali za minuly rok najdes mezi poslednimi clanky lonskeho roku.

Odpovědět na příspěvek

RE: RE: API

Autor: Ondra Nekola Muž

Založeno: 15.01.2003, 18:07

Priznam se, ze nevim, kde berete jistotu, ze ostatni clanky nikoho zajimaji :) Dost casto se pristihnu, ze nejaky clanek, treba o DTP jen otevru a preletnu ocima...
K tomu aktualni uspech clanku neni zcela smerodatny. Jsou clanky, ke kterym se lide vraceji a ktere byvaji casto anchazeny za pomoci webovych vyhledavacu. Takove pak byvaji ridce, ale po dlouhou dobu navstevovany.

Odpovědět na příspěvek

pro širší čtenářskou obec

Autor: Zuzka Slováčková Muž

Založeno: 14.01.2003, 16:08
Odpovědí: 0

trošku to zjednodušte, jelda tomu ani trochu nerozumi !!!

Odpovědět na příspěvek

RE: pro širší čtenářskou obec

Autor: Robert Černý Muž

Založeno: 14.01.2003, 16:32

Jestli necemu nerozumite, staci se tady zeptat. Jednoduseji uz to nejde, v tech dalsich dilech se pocita s tim, ze jsou zaklady jasne....

Odpovědět na příspěvek

2Martin, 2Robert

Autor: OC Muž

Založeno: 14.01.2003, 20:09
Odpovědí: 0

Martine, neblbne vám redakční systém? Kdykoli se pokusím na něco odpovědět, dozvim se, že "Chyba: Clanek s timto url na serveru nenalezen...".

Roberte
, je tam "takže se to, co je napsané v C, lze použít i v C++ a Objective-C". Odhlédnu-li od podivné vazby "se to,... lze" (já při úpravách textu obvykle vytvářím ještě mnohem horší ;))), naznačuje to zpětnou kompatibilitu C++ s C. Ale to samozřejmě na této úrovni není VŮBEC důležité.

Mimochode
m, kdybych měl hledat vši, možná by bylo lepší věci typu "initWithContentsOfFile:" nazývat "službami" než "funkcemi" (protože funkce to nejsou, jsou to metody či zprávy -- ale uznávám, že by většina čtenářů nevěděla o co go. Proto navrhuji ty "služby").

Odpovědět na příspěvek

RE: 2Martin, 2Robert

Autor: Martin Ler Muž

Založeno: 14.01.2003, 20:18

Toto je vice mene jen testem, zda to funguje :) O C(+-) nevim ani N :)

Odpovědět na příspěvek

2Martin, 2All (HTML problem)

Autor: OC Muž

Založeno: 14.01.2003, 20:31
Odpovědí: 0

Hmmm, vypada to, ze applovcum zlobi nove Safari :(((

Muzete se na to prosim juknout nekdo, kdo znate HTML lepe nez ja, a poslat jim kvalifikovany bugreport? Vypada to, ze je-li base URL s otaznikem, nekorektne zkonstruuji odkaz -- ale ja neznam patricne standardy, takze si to netroufnu popsat korektne...

Odpovědět na příspěvek

Rýchlosť PC

Autor: Rastik Muž

Založeno: 09.01.2004, 15:18
Odpovědí: 0

"Přesto, že jsem na počítače Apple Macintosh a operační systém MacOS X hodně zatížen, musím velmi kriticky uznat, že v parametrech výše uvedených zaostáváme. Nechci být označen za nějakého buřiče, ani se nechci nijak zaplést do nikdy nekončící diskuse mezi uživateli MacOS a Windows, ale vzhledem k tomu, že musím každodenně pracovat na obou platformách vím, že to je pravda."
Celkom som nepochopil, čo chcel autor touto vetou povedať. Myslím, že veľmi záleží na tom, čo na PC človek robí. Napríklad vo webových a kancelárskych aplikáciách bude pravdepodobne PC rýchlejšie kvôli rozšíreným inštrukčným sadám ako SSL, ale pri spracovaní obrazu a zvuku sú nepochybne RISC procesory rýchlejšie.

Odpovědět na příspěvek

RE: Rýchlosť PC

Autor: Adam Muž

Založeno: 11.07.2004, 11:36

To souhlasim, standartni Intel CPUcka totiz neumi vektory, zatimco PowerPC ano, to je u nekterych aplikaci znat. Nevim jak moc toho vektoroveho vykonu vyuzivaji aplikace v MacOS X, ale vim jak se chova Linux na PowerPC a u nej je rozdil skutecne znatelny ;)

Odpovědět na příspěvek

BSD neni programovaci jazyk

Autor: Adam Muž

Založeno: 11.07.2004, 11:34
Odpovědí: 0

Mozna ze jsem to z clanku blbe pochopil, ale musim upozornit, ze BSD rozhodne neni programovaci jazyk, ale druh unixoveho systemu pribuzneho s MAcOS X a o neco mene pribuzneho s linuxem ;)

Ale mozna jsem to jenom blbe pochopil ;)

Odpovědět na příspěvek

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: