Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Auto-Moto
Mobilní telefony
Notebooky  |  Tablety
Příslušenství
Wearables  |  Ostatní
Svět hardware  |  Digimanie  |   TV Freak

Kompiler pro VS2005

bkf1_ce4you (368)|6.11.2007 16:38
Rad bych se zeptal i kdyz asi tezko neco takoveho bude na svete :/ Shanim nejaky kompiler, kterym bych mohl zkompilovat aplikace vyvijene ve VS2005 C# NetCF tak, aby nebylo potreba mit na PDA nainstalovane NetCF tj. aby se aplikace zkompilovala se vsemi knihovnami a vsim, co je potreba ke spusteni.
RStein (2012)|6.11.2007 17:16
Jednocuha odpoved - na tohle zapomente.
Pro velky NF sice existuje utilitka, ktera NF prilinkuje primo k exe, ale je to nepodporovana PRASARNA, navic v CNF nic takoveho neni.
A budte rad - nedovedu si predstasvit, jak WM zarizeni s malou pameti museji ukladat a pracovat s nekolika MB exe...

//Edit- Chcete-li jedno exe, pouzijte C++
Na vetsine zarizeni se ale muzete spolehnout, ze CNF obsahuji - i jeho automaticka instalace pres AS je pomerne jednoducha.
bkf1_ce4you (368)|7.11.2007 08:17
hmmm no v native kodu se dost ztracim a kdyby nebyl potreba k developeni klavesnice (SIP) tak bych se v nem ani nehrabal :) me na NetCF vadi v podstate jen to hrozne dlouhe spousteni zkompilovaneho EXE :( treba muj programek TapTapSMS se spousi neco kolem 12s (PDA - CPU 520MHz, RAM 64MB, WM5 AKU3.5). Muzete pls nahodit nejaky odkaz popr. par rad, jak to zkratit a vubec jak moc se to da vubec zkratit?
phacker (49)|7.11.2007 11:44
No tady to vidím na problém v samotné aplikaci. Obecně je sice spouštění .NET kódu o něco pomalejší, ale rozhodně tam není overhead v řádech sekund. Jak jsem řek, problém bych viděl v samotném zdrojáku.
RStein (2012)|7.11.2007 12:04
bkf1: Kdybych chtel byt jizlivy, rekl bych, ze kdyz neumite zabojovat s kodem v C++, tak napisete i horsi kod v C#. Ale jizlivy nebudu. :)

15 s je silene moc - nevim, co mate za aplikaci a co delate pri jejim startu. Nemate mnoha ukoly prehlcenou metodu OnLoad? Zkousel jste vytvorit a zobrazit nejdrive splash screen?

Pro "velky" NF existuje utilita ngen.exe, ktera vytvori "predkompilovany" nativni image a muze zrychlit dobu startu. Pro CNF ale bohuzel ngen neexistuje.
bkf1_ce4you (368)|7.11.2007 13:46
TO RSTEIN:
Ano je to tak ja jsem takovy pseudo-programator co ma rad RAD jako je Delphi, C++ Builder atd. ve kterych se daji velice rychle a jednoduse delat formularove programky coz jsou v podstate vsechny uzitkove programy... jinak zkousel jsem na test vytvorit ten nejjednodusi program v NetCF tj. prazdny Form a tlacitko na zavreni a stejne doba spousteni tohoto "programku" je 8s :( Jaka je vase doba spousteni a na jakem PDA?

PS: mam NetCF 2.0 SP2 a k instalaci na PDA jsem pouzil "NETCFv2.wm.armv4i.cab". Je divne ze po pouziti nekterych veci v kodu C# (napr. Microsoft.WindowsMobile.PocketOutlook) je nutne abych prilozil prislusnou knihovnu DLL (v tomhle pripade treba "Microsoft.WindowsMobile.PocketOutlook.dll") :( Reinstal celeho NetCF jsem uz zkousel...
RStein (2012)|7.11.2007 14:06
Na MDA Vario III jsem ted aplikaci, kde na formulari je treeview plnene z XML, spustil asi za 4 s. Opravdu ale dobu spusteni nepovazuji za nejaky vetsi problem - at se aplikace spusti jednou, kdyz bude narocnejsi a zustane v pameti - tak byly i puvodne aplikace pro Pocket PC navrhovany.
mimochodem - mate aplikace zkompilovanou v release konfigurace?

A k tem assembly Microsoft.*- distribuovat byste je nemel. Od WM5 jsou v a dresari Windows (jsou ulozeny v GAC a jejich prefix je GAC)...
phacker (49)|7.11.2007 14:06
To ře to do výstupu přidává knihovny které nejsou součásti .NET CF je notmální. Jinak prográmek co říkáš se u mě otvírá cca 1sec. Testováno na Advantage a QTEK9000
RStein (2012)|7.11.2007 14:09
Phacker: To sice je obecne pravda, ale zminovana knihovna Microsoft.WindowsMobile.PocketOutlook je beznou soucasti systemu a je i popssana v zakladnim SDK od WM 5.0.
phacker (49)|7.11.2007 14:26
V SDK ano, ale není standartní součástí WM5. V SDK je i .NET CF který ve WM5 taky defaultně není
RStein (2012)|7.11.2007 14:47
Je veci OEM vyrobcu, zda CNF do systemu daji - a vetsina z nich to dela.
Obecne Microsoft razi tezi, ze pro beh CNF aplikaci neni potreba CNF instalovat a toho by se meli vyrobci drzet.
Compact .Net framework ne vetsine zarizeni s WIM5 je ( na HTC Artemis jsem nic neinstaloval), stejne jako je nyni CNF od zacatku na MDA Vario III.
Knohovny Microsoft* jsou take vetsinou distribuovany se systemem - nejsou soucasti CNF jen proto, ze jsou dostupne pouze od WM5 a patri mezi "MS Specific" veci...
bkf1_ce4you (368)|7.11.2007 14:53
[QUOTE="RStein"]mate aplikace zkompilovanou v release konfigurace?[/QUOTE]
mam... v cem by jeste mohl byt zakopany pes? jako rozdil vasi 1s a mych 8s je proste propastny... jinak mam uzivatelskou ROM ve ktere urcite standartne zadne knihovny NetCF nebyly a v originalni ROM uz vubec ne...
RStein (2012)|7.11.2007 15:02
Uzivatelskou ROM? To znamena "zbastlenou" nadsenci? :)
Pak se nedivte, ze nemate nektere veci v ROM...
Plneni treeview mi trva asi4 s (ne 1) . ale jedna se opravdu o neoptimalizovane cteni XML.
Nebezi Vam na zarizeni nejake procesy, co pravidelne vytezuji Mio? Mate dostatek pameti?
RStein (2012)|7.11.2007 15:14
A jeste me napadlo, ze muzete zkusit u sve aplikae perf. monitor - i kdyz casy startu a duvody prodlev z nej nevyctete


"
Při vývoji aplikace pod compact .Net Frameworkem nám chybí základní statistiky o běhu aplikace, respektive o výkonnosti běhového prostředí. Alespoň základní výkonnostní ukazatele (Performance Counters) zjistíme po přidání klíče HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\PerfMonitor do registrů. Pod nově vytvořený klíčem přidáme novou položku typu DWORD, nazveme ji Counters a její hodnotou bude číslo 1.
Pak můžete spustit jednu CF aplikaci, simulovat běžnou práci uživatele a po ukončení aplikace analyzovat nově vygenerovaný soubor Mscoree.stat v kořenovém adresáři PDA. "

Tohle jsem psal jako tip pro 1.1. - ve 2.0 se myslim tvori soubor .stat
bkf1_ce4you (368)|7.11.2007 15:20
Mno bez teto ROM "zbastlenou" nadsenci (resp. jednim spanelem) tak by bylo Mio absolutne nepouzitelny kram, protoze oficialni ROM jsou asi na takove urovni jako "pojd kamo zahod tu lopatu a jdem delat ROM" :D Mno takze je jasne ze ROM (oficialni/neoficialni) obsahuje co se tyce WM5 jen to uplne zakladni :/ Jinak nemam zadny procesy na pozadi, RAMky mam 35MB a ROMky mam jeste 28MB (pouzivam lokalizaci od SunnySoftu ale bez ni je to uplne stejne co se tyce rychlosti spousteni aplikaci v NetCF) ;)
Jinak bezi mi gwes.exe, filesys.exe, device.exe, shell32.exe, services.exe, cprog.exe, connmgr.exe, SDDaemon.exe, tmail.exe, srvtrust.exe, internat.exe, poutlook.exe, sms_alert_fix.exe (oprava prijimani SMS pri "spicim" stavu - po vypnuti neni zmena), allinone.exe (panel malych ikonek rychleho spusteni vpravo dole - po vypnuti neni zmena) a NK.exe.
RStein (2012)|7.11.2007 15:24
Tak to vam nezavidim - vypada to, ze ma MIO mizerny vykon ve vsech smerech.
Zkuste aplikaci sledovat chvili profilerem. No a ten nativni kod mate porad v zaloze. ;)
bkf1_ce4you (368)|7.11.2007 15:35
mno spise bych to videl ciste na problem NetCF, jeho knihoven a vubec jeho integrace do systemu na Miu... a ten profiler vezmu kde?
PS: s native me nestraste jeste mam porad nocni mury z toho jak jsem zoufale volal o pomoc se zakladnimi vecmi ovladani klavesnice v sample DvorakSip ktery je u WM5 SDK :mad: nakonec jsem si na to samozrejme musel prijit sam zhe... :dead:
RStein (2012)|7.11.2007 15:44
Viz muj tip vyse - pridejte polozku do registru a spustte aplikaci.
A k nativnimu kodu- ted jsem nasel jen jednu vasi trochu zmatene (s prominutim ;) ) formulovanou otazku k SIPu, na kterou se dalo tezko odpovedet bez znalosti kodu. Chapu ale, ze pro cloveka, co v C++ nepise, je to proti C# dost nepohodlne kodovani. ;)
bkf1_ce4you (368)|7.11.2007 16:03
ok zkusim ;) jinak ohledne klavesky pokud myslite tohle https://www.ce4you.cz/forums/view_topic.asp?t=25793 tak z toho se dalo dost dobre pochopit o co mi jde ;) je tam prilozeny i hotovy programek (jak jinak nez v C# :) ) podle ktereho se to dalo pochopit jake funkce potrebuju resit ;) tedka uz to ale vim tak me jenom ceka "mraveniste" (tj. mravenci prace :) ).


RStein (2012)|7.11.2007 16:15
Presne to jsem mel na mysli - omlouvam se, kod jsem prehledl, jinak bych se do nej podival - reseni uz ale stejne mate. :)
bkf1_ce4you (368)|24.1.2008 14:12
Jen tak pro doplneni k rychlosti spousteni aplikaci programovanych NetCF... tedka na svem Miu A701 provozuju velice kvalitni WM6 ROM (5.2.1933 - build 18533.0.7.0) puvodem z nejakeho HTC a spusteni jednoduche aplikace programovane v NetCF trva tak kolem te 0,5 - 1 s, jak tady uvadeli nekteri majitele HTC PDAcek. Skutecne zalezi, jak je NetCF do systemu integrovano a kdyz neni moc dobre integrovano, tak zadna instalace NetCF (ani vyssiho treba 3.5) nepomuze.
RStein (2012)|1.2.2008 16:07
[QUOTE="bkf1"]Skutecne zalezi, jak je NetCF do systemu integrovano a kdyz neni moc dobre integrovano, tak zadna instalace NetCF (ani vyssiho treba 3.5) nepomuze.[/QUOTE]

Metadoplneni - Doplneni k doplneni :) O nejakem stupni integrace se neda mluvit - proste na vykon CLR (vcetne GC) ma vliv celkova rychlost a vyladenost ROM.
NetCF aplikace je vzdy aktivovana stejne - tzn., ze na pocatecni start aplikace ma nejvetsi vliv rychlost vytvoreni hostitele CLR v procesu a rychlost kompilace IL instrukci).
A samozrejme novejsi verze CNFmuze mit vliv na rychlost spousteni aplikaci i na horsich ROM (daji se poznat na jakekoli ROM rozdily mezi CNF 1.0 a CNF 3.5).
-p- (54)|23.4.2008 18:43
[QUOTE]jinak zkousel jsem na test vytvorit ten nejjednodusi program v NetCF tj. prazdny Form a tlacitko na zavreni a stejne doba spousteni tohoto "programku" je 8s[/QUOTE]

Je to nejspíše proto, že tvůj .NET CF není v ROM a na tvém zařízení neběží jiný .NET CF program. Do paměti RAM se v tom případě musí načítat plno knihoven běhového prostředí.

Soubory v ROM v sekci Modules mají pevně danou adresu a není potřeba je při spuštění nahrávat.