Futásidő és memóriahasználat monitorozása (profiling)
|
|
- Artúr Hegedűs
- 9 évvel ezelőtt
- Látták:
Átírás
1 Szoftverellenőrzési technikák Futásidő és memóriahasználat monitorozása (profiling) Majzik István és Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
2 Tartalomjegyzék Motiváció Célkitűzés: Belső működés analízise A profiling általános problémái Felműszerezés, triggerelés, regisztrálás Szoftver és hardver monitorozás Futásidő profiling Teljesítményproblémák felderítése Memóriahasználat profiling Memóriaproblémák monitorozása 2
3 Célkitűzések Mi a profiling? Dinamikus program analízis (belső működés vizsgálata), a végrehajtás (tesztelés) során gyűjtött információk alapján, a hibák, optimalizálási lehetőségek felderítése érdekében Az információgyűjtés (monitorozás) tipikus szempontjai Futásidő adatok felvétele (pl. hívásidő, hívási gyakoriság) Memóriafoglalás követése (pl. elmaradt felszabadítás) A profiling analízis része: A gyűjtött információ felhasználása fejlesztői szinten Hibakeresés: Hol állt le a program? Teljesítmény viszonyok vizsgálata: Mit érdemes gyorsítani? Memóriahasználati viszonyok: Mit lehet optimalizálni? Amivel most nem foglalkozunk: Teljesítmény modellezés, változásbecslés, optimalizálás, benchmark tervezés, felhasználói profilok felvétele, 3
4 Tartalomjegyzék Motiváció Célkitűzés: Belső működés analízise A profiling általános problémái Felműszerezés, triggerelés, regisztrálás Szoftver és hardver monitorozás Futásidő profiling Teljesítményproblémák felderítése Memóriahasználat profiling Memóriaproblémák monitorozása 5
5 Információgyűjtés: A monitorozás alapműveletei Releváns információk: idő, erőforráshasználat, kommunikáció,... Periodikus információgyűjtés: mintavételezés (pillanatképek) Eseményfüggő információgyűjtés: instrumentáció (eseményekre) Kiterjeszthető esemény nyomkövetésre (nem csak aggregált profilok) Általános feladatok: Információ hozzáférés: Felműszerezés Szoftver úton: Extra utasítások beszúrása (általában a forráskódba) Hardver úton: Illesztés a rendszerbuszra, csatornára, Információ szűrés: Triggerelés Szoftver úton: Felműszerezés része (extra utasítások megoldják) Hardver úton: Jelek, jelminták figyelése (pl. buszon) Információ tárolás: Regisztrálás Szoftver úton: Naplózás memóriába vagy fájlba szoftver modulból Hardver úton: Rögzítés külső tárba (pl. körpuffer) 6
6 Általános monitorozási séma Megfigyelt rendszer Felműszerezés Monitor interfész Trigger figyelő Esemény regisztrátor Esemény napló Monitor vezérlő On-line megjelenítő Off-line megjelenítő 7
7 Példa: Előfeldolgozás (felműszerezés) for (i=0; i<9; i++) { V(sm1); if (i==a) { P(sm1); } else { P(sm2); } } Előfeldolgozó for (i=0; i<9; i++) { EV(V1); V(sm1); if (i==a) { EV(P1); P(sm1); } else { EV(P2): P(sm2); } } void switch_up() { if( gear == 5 ) { error(); return; } set_gear( gear+1 ); } char _TABLE[NUM_BLOCK / 8]; void switch_up() { if( gear == 5 ) { error(); _TABLE[17/8] = (1<<(17%8)); return; } set_gear( gear+1 ); _TABLE[18/8] = (1<<(18%8)); } 8
8 A profiling (monitorozás) problémái Beavatkozás: Ha a rendszer erőforrásait használjuk, akkor megváltoztatjuk a rendszer viselkedését Példa: Időzítések, eseménysorrend eltérő lesz Megoldás: Hardver monitorozás, bennhagyás Szemantikai hézag: A megfigyelt információ különbözik a szükséges információtól Példa: Processzor buszjelekből erőforráshasználatra következtetni Megoldás: Rugalmas (szoftver) triggerelés vagy off-line analízis Globális jellemzők származtatása: Elosztott rendszerek esetén a lokális információból globális jellemzők Példa: Körkörös várakozás detektálása Megoldás: Központi monitor, lokális monitorok szinkronizálása 9
9 Általános megoldások áttekintése Monitorozás típusa / feladat Szoftver (rugalmas, de beavatkozó) Felműszerezés Triggerelés Regisztrálás Trigger utasítások (aut.) beszúrása Trigger utasítások közvetlenül Alkalmazás, vagy monitor processz Hardver (nem beavatkozó, de specifikus) Közvetlen csatlakozás Hardver komparátor Lokális vagy távoli tároló Hibrid (rugalmas, kevésbé beavatkozó) Trigger utasítások (aut.) beszúrása Trigger utasítások közvetlenül Hardver (lokális vagy távoli tároló) 10
10 Lauterbach TRACE32 Bus trace, program trace 512 Kframes trace memory 94 channels 36 bit time stamp 25 ns resolution Példa: Hardver monitorozás 11
11 Példa: Java Virtual Machine Tool Interface (JVMTI) Java Platform Debugger Architecture része Korábbi Java Virtual Machine Profiler Interface (JVMPI) és a Java Virtual Machine Debug Interface (JVMDI) helyett Natív (C, C++) programozási interfész Futtatott alkalmazások állapotának vizsgálata (profiling, debugging) Alkalmazás végrehajtás vezérlése JVM-en Kétirányú interfész Események kliens (agent) programok számára (callback fv.) Pl. ThreadStart, ThreadEnd, ClassLoad, FieldAccess, MethodEntry, Függvények biztosítása vezérléshez, lekérdezéshez Pl. SuspendThread, StopThread, GetThreadInfo, GetStackTrace, Java bytecode felműszerezése lehetséges a kliens által (pl. metódusszintű monitorozáshoz) Statikus (előzetesen) Betöltési időben (load-time): ClassFileLoadHook event Futási időben (run-time): RetransformClasses function 12
12 Példa: Szoftver monitorozás AOP felhasználásával Monitorozás: Teljes szoftvert átszövő beavatkozás Sok helyen kell beavatkozni a regisztráláshoz Beavatkozások modularizálása aspektusokban Megadható a beavatkozás helye (reguláris kifejezéssel) Vágási pont (pointcut): hová kell kapcsolódni? Kapcsolódási pont (join point): aspektus interakció helye pl. send*() - minden send kezdetű metódus esetén Újrahasználható a beavatkozás Beavatkozás (advice): mit kell ott csinálni? Pl. naplófájlba írás a send*() végrehajtásáról Fordítás során: Felműszerezés: Aspektus és eredeti kód összefésülése 13
13 Példa: Szoftver monitorozás AOP felhasználásával Járulékos aspektusok: különféle szempontú monitorozás Aspektus 2 Aspektus 1 Miként történjen? Hol történjen? Advice (tanács, beavatkozás): before, after,... Pointcut (vágási pont, eseményleíró): call, execution,... reguláris kifejezés Alap komponens: monitorozott program Komponens Join point (kapcsolódási pont): konkrét hely a programban 14
14 15
15 Példa: Aspektus-orientált minta Eredeti forráskód: A send() hívást szeretnénk regisztrálni class Controller { public int send(int msg) { <<sending message>> } Vágási pont definiálás loggedcall névvel } Aspektus kód: Vágási pont (trigger): public aspect SimpleLog { send() végrehajtása pointcut loggedcall(int msg): execution(public int Controller.send*(..)) && args(msg); } Vágási pont előtt avatkozunk be before(int input): loggedcall(msg) { Beavatkozás (regisztrálás) <<log request(msg)>>} after() throwing exception (Exception e): loggedcall() { <<log exception>>} Kivétel dobásának regisztrálása 16
16 Tartalomjegyzék Motiváció Célkitűzés: Belső működés analízise A profiling általános problémái Felműszerezés, triggerelés, regisztrálás Szoftver és hardver monitorozás Futásidő profiling Teljesítményproblémák felderítése Memóriahasználat profiling Memóriaproblémák monitorozása 17
17 Alapfeladatok: Futásidő profilerek Függvényhívási hierarchia felderítése Függvények hívási gyakoriságának hozzárendelése Annotált forrás: utasítások végrehajtási gyakorisága Az egyes függvényekben eltöltött idő hozzárendelése Célkörnyezetben futtatva használhatók az eredmények Felhasználás: Problémás helyek (hívások) azonosítása: Teljesítmény szempontjából szűk keresztmetszetek Melyik metódust érdemes gyorsítani, átstrukturálni? Javítások hatásának ellenőrzése Gyorsult-e a végrehajtás a változtatás után? 18
18 Példák futásidő profilerekre Egyszerű, C fordítókkal használható: gprof Program felműszerezése: speciális fordítással cc -pg prog.c -o prog (opció; gcrt0.o, libc_p.a) Futás közbeni adatgyűjtés: gmon.out adatfájlba Off-line kiértékelés: gprof prog gmon.out Java alkalmazásokhoz (is): Rational Quantify Futásidő adatok gyűjtése Adatok analízise és bemutatása Hívási hierarchia Metódusok futási ideje 19
19 Profiler példa: gprof jelentés: Flat profile % cumulative self self total time seconds seconds calls us/call us/call name RELERR RELFINE RELCOARSE INTERPOL RESFINE RESCOARSE write_res INIT PUTZERO OUTPUT Time: Percentage of the total running time of program used by this function Cumulative seconds: Sum of the seconds accounted for by this function and those listed above it Self seconds: The number of seconds accounted for by this function alone Self us/call: The average number of microseconds spent in this function per call Total us/call: The average number of microseconds spent in this function and its descendents per call 20
20 Profiler példa: gprof jelentés: Call graph index % time self children called name [1] main [1] /4 RELERR [2] /4 RELFINE [3] /60 RELCOARSE [4] /32 INTERPOL [5] /4 RESFINE [6] /28 RESCOARSE [7] /1 write_res [8] /1 INIT [9] /8 PUTZERO [10] /4 main [1] [2] RELERR [2] /4 main [1] [3] RELFINE [3] Self: Total amount of time spent in this function Children: Total amount of time propagated into this function by its children Called: Number of times the function was called 21
21 Profiler példa: Rational Quantify 22
22 Profiler példa: Visual Studio Ultimate profiler Profiling lehetőségek: CPU sampling, function call instrumentation,.net memory allocation, resource contention Megjelenítés: Hívási fa, függvényenkénti adatok (flat profile) 23
23 Profiler példák: Java profiler eszközök Egy lista: jvisualvm JDK belépített eszközöket használ YourKit Java Profiler Quest JProbe JIP Java Interactive Profiler Netbeans Profiler Eclipse: Test & Performance Tools Platform (TPTP) 24
24 Tipikus teljesítményproblémák és megoldási ötletek I. Haszontalan számítás Nem törölt kódrészletek, amik erőforrást foglalnak Igény nélküli, alapértelmezett szolgáltatások Felesleges újraszámítás Részeredmények újraszámítása tárolás helyett Rossz hatékonyságú algoritmusok használata Nem optimális komplexitású algoritmus a feladatra Platform adottságainak rossz kihasználása Program átstrukturálás Felesleges számítások, hívások törlése Szolgáltatások optimalizálása Optimalizált számítások Ismétlés elkerülése ideiglenes tárolással a programon belül Hatékonyabb algoritmusok használata Rendezési, keresési, algoritmusok: Több változat Platform kihasználása: Speciális utasításkészlet, koprocesszor (GPU)
25 Tipikus teljesítményproblémák és megoldási ötletek II. Rendszerszolgáltatások mértéktelen igénybevétele Lassú környezetváltás Foglalt erőforrásokra való várakozás Szinkronizáció, állomány hozzáférés, kommunikáció esetén Kevesebb rendszerhívás Halasztott hívások (nem kritikus időben) Foglalt erőforrások figyelembe vétele Státusz figyelése és a várakozás optimalizálása
26 Tartalomjegyzék Motiváció Célkitűzés: Belső működés analízise A profiling általános problémái Felműszerezés, triggerelés, regisztrálás Szoftver és hardver monitorozás Futásidő profiling Teljesítményproblémák felderítése Memóriahasználat profiling Memóriaproblémák monitorozása 27
27 Jellegzetes memóriahibák Statikusan detektálható hibák Pl. típuskonverziós hibák Memória szivárgás: hiányzó kódrészlet miatt Lefoglalt, de fel nem szabadított memóriaterületek (C++) elfogy a memória... Szükségtelen hivatkozások miatt foglalt objektumok (Java) szemétgyűjtés nem működik... Illegális memóriahasználat: hibás kód miatt Tömbök határainak túlcímzése Inicializálatlan memória olvasása Írás felszabadított memóriaterületre Allokálatlan memóriához való hozzáférés 28
28 Rejtélyes hatások Nehézségek a tesztelésben Hatások csak későn és más formában jelentkeznek (pl. adathiba, lassulás, fagyás,...) Hatások csak nehezen reprodukálhatók Ötlet: Nem a késői hatás alapján detektálni Tömbök határai előtt és után tilos zóna beillesztése Memória státuszának nyilvántartása (allokált, inicializált stb.) Hivatkozások nyilvántartása és ellenőrzése (C++) Allokált memória kijelzése és összehasonlítása (Java); a folyamatosan foglaló metódusok azonosítása 29
29 Példa eszköz: Rational Purify Automatizált feladatok: Memóriafoglalás rögzítése Memóriakezelési hibák futásidejű detektálása Kiindulási alap: Memóriafoglalás és -felszabadítás regisztrálása Automatikusan illeszt be ellenőrző kódrészleteket (akár a forráskód ismerete nélkül) Windows: futtatható kód alapján Java: virtuális gép profiling Solaris: object code alapján (linkelés fázisban) 30
30 31
31 Példa eszköz: Memory Analyzer (Eclipse) Heap dump fájl vizsgálata Különálló RCP alkalmazás, vagy Eclipse Memory Analysis nézet 32
32 Összefoglalás Motiváció Célkitűzés: Belső működés analízise A profiling általános problémái Felműszerezés, triggerelés, regisztrálás Szoftver és hardver monitorozás Futásidő profiling Teljesítményproblémák felderítése Memóriahasználat profiling Memóriaproblémák monitorozása 33
Futásidő, memóriahasználat monitorozása (profiling)
Szoftverellenőrzési technikák Futásidő, memóriahasználat monitorozása (profiling) Majzik István és Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Integrációs- és rendszertesztelés
Integrációs- és rendszertesztelés Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/ Szoftver integráció Szoftver konstrukció
Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés
Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;
Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20
Teljesítmény Mérés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 1 / 20 Tartalomjegyzék 1 Bevezetés 2 Visual Studio Kód metrikák Performance Explorer Tóth Zsolt
Mikrorendszerek tervezése
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése Debug lehetőségek Fehér Béla Raikovich Tamás
Verifikáció és validáció Általános bevezető
Verifikáció és validáció Általános bevezető Általános Verifikáció és validáció verification and validation - V&V: ellenőrző és elemző folyamatok amelyek biztosítják, hogy a szoftver megfelel a specifikációjának
Autóipari beágyazott rendszerek. Komponens és rendszer integráció
Autóipari beágyazott rendszerek és rendszer integráció 1 Magas szintű fejlesztési folyamat SW architektúra modellezés Modell (VFB) Magas szintű modellezés komponensek portok interfészek adattípusok meghatározása
2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok
Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs
Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus
Szoftver karbantartási lépések ellenőrzése
Szoftverellenőrzési technikák (vimim148) Szoftver karbantartási lépések ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.inf.mit.bme.hu/
Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Folyamatmodellezés és eszközei Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Folyamat, munkafolyamat Munkafolyamat (Workflow): azoknak a lépéseknek a sorozata,
Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT richard.jonas@tsoft.
Komponensek együttműködése web-alkalmazás környezetben Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT Komponensek a gyakorlatban A szoftverkomponenseket fejlesztő csoportoknak szüksége van olyan
ISA szimulátor objektum-orientált modell (C++)
Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált
TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS
TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS Hartung István BME Irányítástechnika és Informatika Tanszék TEMATIKA Cloud definíció, típusok, megvalósítási modellek Rövid Azure cloud bemutatás
Operációs rendszerek III.
A WINDOWS NT memóriakezelése Az NT memóriakezelése Memóriakezelő feladatai: Logikai-fizikai címtranszformáció: A folyamatok virtuális címterének címeit megfelelteti fizikai címeknek. A virtuális memóriakezelés
C programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1
Fordító részei Kód visszafejtés. Izsó Tamás 2016. szeptember 29. Izsó Tamás Fordító részei / 1 Section 1 Fordító részei Izsó Tamás Fordító részei / 2 Irodalom Izsó Tamás Fordító részei / 3 Irodalom Izsó
1. Bevezetés A C++ nem objektumorientált újdonságai 3
Előszó xiii 1. Bevezetés 1 2. A C++ nem objektumorientált újdonságai 3 2.1. A C és a C++ nyelv 3 2.1.1. Függvényparaméterek és visszatérési érték 3 2.1.2. A main függvény 4 2.1.3. A bool típus 4 2.1.4.
Programozási nyelvek JAVA EA+GY 1. gyakolat
Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program
Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22
Unit Teszt Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 1 / 22 Tartalomjegyzék 1 Bevezetés 2 Unit Teszt 3 Példa Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 2 / 22 Szoftvertesztelés
C++ fejlesztés az ECLIPSE környezetben
Bevezetés kr304@hszk.bme.hu UNIX, 2005. május 13. Bevezetés Tartalomjegyzék 1 Bevezetés IDE IDE eszközök 2 Célkitűzés Architektúra CDT Project Összefoglalás Bevezetés IDE IDE eszközök Integrated Development
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron
Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r
Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti
Modell alapú tesztelés mobil környezetben
Modell alapú tesztelés mobil környezetben Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A terület behatárolása Testing is an activity performed
A hibakezelés tesztelése: Hibainjektálás
Szoftverellenőrzési technikák (vimim148) A hibakezelés tesztelése: Hibainjektálás Majzik István és Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Java I. A Java programozási nyelv
Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök
Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Folyamatmodellezés és eszközei Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Folyamat, munkafolyamat Ez vajon egy állapotgép-e? Munkafolyamat (Workflow):
Programozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
Vizuális, eseményvezérelt programozás X. V 1.0
Vizuális, eseményvezérelt programozás X. V 1.0 ÓE-NIK, 2011 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Digitális technika VIMIAA01 9. hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Rendszermodernizációs lehetőségek a HANA-val Poszeidon. Groma István PhD SDA DMS Zrt.
Rendszermodernizációs lehetőségek a HANA-val Poszeidon Groma István PhD SDA DMS Zrt. Poszeidon EKEIDR Tanúsított ügyviteli rendszer (3/2018. (II. 21.) BM rendelet). Munkafolyamat támogatás. Papírmentes
Szoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért
C++ programok fordítása
C++, 1/ 33 C++ programok fordítása Pataki Norbert 2012. február 24. C++, 2/ 33 Információk Pataki Norbert, patakino@elte.hu http://patakino.web.elte.hu/levelezo Jegy: gyakorlat, Szűgyi Zalán C++, 3/ 33
1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok
Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,
Modellező eszközök, kódgenerálás
Modellező eszközök, kódgenerálás Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
SQLServer. Probléma megoldás
SQLServer 9. téma Teljesítmény elemzés Probléma megoldás Az adatbázis életében nem ritka kisérő a hibák, teljesítmény problémák jelenléte A probléma megoldáshoz használható útmutatók: - ismerni kell a
Dr. Schuster György október 14.
Real-time operációs rendszerek RTOS 2011. október 14. A fordítás vázlata prog.c Előfeldolgozó Átmenti állomány Fordító prog.obj más.obj-tek könyvtárak indító kód Linker futtatható kód Ismétlés Előfeldolgozó
GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
5. fejezet A C++ fordítási modellje Grafikus Processzorok Tudományos Célú Programozása Kódtól a végrehajtásig Végrehajtás előtt valamikor létre kell jönnie az adott architektúrára jellemző bináris utasításoknak.
Bevezetés a párhuzamos programozási koncepciókba
Bevezetés a párhuzamos programozási koncepciókba Kacsuk Péter és Dózsa Gábor MTA SZTAKI Párhuzamos és Elosztott Rendszerek Laboratórium E-mail: kacsuk@sztaki.hu Web: www.lpds.sztaki.hu Programozási modellek
OOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
Programzás I. - 1. gyakorlat
Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)
Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread
Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális
Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése
Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése Somogyi Ferenc Attila 2016. December 07. Szoftver verifikáció és validáció kiselőadás Forrás Mathijs Schuts and Jozef
Podoski Péter és Zabb László
Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő
Operációs rendszerek. Bemutatkozás
Bevezetés az operációs rendszerek világába dr. Benyó Balázs benyo@sze.hu Bemutatkozás www.sze.hu/~benyo 1 Számítógép HW-SW felépítése felhasználó felhasználó felhasználó Operációs rendszer Operációs rendszer
8. gyakorlat Pointerek, dinamikus memóriakezelés
8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális
Iman 3.0 szoftverdokumentáció
Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3
Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 10. előadás Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Tesztelés
Operációs rendszerek. Az NT memóriakezelése
Operációs rendszerek MS Windows NT (2000) memóriakezelés Az NT memóriakezelése 32-bites virtuális memóriakezelés: 4 GB-os címtartomány, alapesetben: a fels! 2 GB az alkalmazásoké, az alsó 2 GB az OPR-é.
Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő 2013. február 20.
Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő 2013. február 20. 1 2 3 4 5 6 7 8 Pentaho eszköztára Data Integrator Spoon felület Spoon
Mintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
RPC Remote Procedure Call Távoli eljárás hívás
RPC Remote Procedure Call Távoli eljárás hívás Hagyományos eljáráshívás: Count = read (fd, buf, nbytes) Paraméterek átadásának a típusai: - Érték szerinti átadás - Referencia szerinti átadás - Másoló/visszatöltő
Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet
Aspektus-orientált nyelvek XML reprezentációja Kincses Róbert Debreceni Egyetem, Informatikai Intézet kincsesr@inf.unideb.hu Bevezetés OOP: helyesen alkalmazva jó minőségű szoftvert lehet vele előállítani
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor
1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11
Tartalomjegyzék 1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Géptől gépig... 11 Számok a gépeknek... 13 Nevek az embereknek... 14 Programok egymás
OOP és UML Áttekintés
OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés
Projekt beszámoló. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető Rendszer Napon belüli Kereskedéshez
Projekt beszámoló Projekt azonosítója: Projektgazda neve: Projekt címe: DAOP-1.3.1-12-2012-0080 Pénzügyi Innovációs Iroda Kft. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető
Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba
Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Témavezető: Horváth Zoltán és Simon Thompson OTDK 2007, Miskolc Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK
Tesztelési feladatok és kihívások a FALCON projektben
Tesztelési feladatok és kihívások a FALCON projektben Búr Márton Szoftver Verifikáció és Validáció 2016.12.07. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Vizuális, eseményvezérelt programozás XI.
Vizuális, eseményvezérelt programozás XI ÓE-NIK, 2011 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik Ismeretük szükséges,
Flex: csak rugalmasan!
Flex: csak rugalmasan! Kiss-Tóth Marcell http://kiss-toth.hu marcell@kiss-toth.hu Magyarországi Web Konferencia 2006 2006. március 18. tartalom bevezető Adobe Flex alternatív technológiák bevezető az Internetnek
Biztonságkritikus rendszerek Gyakorlat: Architektúrák
Biztonságkritikus rendszerek Gyakorlat: Architektúrák Rendszertervezés és -integráció dr. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék BME-MIT
IBM felhő menedzsment
IBM Váltsunk stratégiát! Budapest, 2012 november 14. IBM felhő menedzsment SmartCloud Provisioning és Service Delivery Manager Felhő alapú szolgáltatások Felhasználás alapú számlázás és dinamikus kapacitás
Programtervezés. Dr. Iványi Péter
Programtervezés Dr. Iványi Péter 1 A programozás lépései 2 Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3 Feladat megfogalmazása Egyértelmű
Modellek végrehajtása, kódgenerálás
Modellek végrehajtása, kódgenerálás Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Laborsegédlet 3. Labor
1/6. oldal Logisztikai rendszerek irányítás és automatizálás technikája I. CX-Programmer: 3. Labor A CX Programmer az OMRON PLC-k programozó szoftvere. Új program megnyitásának lépései: FILE NEW Device
Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft
Java-ról Kotlinra Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Java és Kotlin kapcsolata Hogyan próbálhatjuk ki? Kotlin kultúra kialakítása cégen belül Milyen a Kotlin a Java-hoz képest? Történet
Tartalomjegyzék. Előszó... xiii Bevezetés... xv. 1. Ismerkedés a Windows 7-tel... 1. 2. Integráció a Windows 7 tálcájával: az alapszolgáltatások...
Előszó... xiii Bevezetés... xv Kiknek szól a könyv?...xv Miről szól a könyv?...xvi Kiadás előtti szoftver...xvii További tartalom...xvii Hardver- és szoftverkövetelmények...xviii A könyv támogatása...xviii
Alternatív processz állapot és statisztika lekérdezési módszer a Linux kernelben
Alternatív processz állapot és statisztika lekérdezési módszer a Linux kernelben 2011. október 13. Az alapprobléma A processzek állapotát gyakran le kell kérdezni. Az ehhez használatos eszközök: ps top
Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1
Köszönetnyilvánítás Bevezetés Kinek szól a könyv? Elvárt előismeretek A könyv témája A könyv használata A megközelítés alapelvei Törekedjünk az egyszerűségre! Ne optimalizáljunk előre! Felhasználói interfészek
Automatikus tesztgenerálás modell ellenőrző segítségével
Méréstechnika és Információs Rendszerek Tanszék Automatikus tesztgenerálás modell ellenőrző segítségével Micskei Zoltán műszaki informatika, V. Konzulens: Dr. Majzik István Tesztelés Célja: a rendszerben
Programozási technológia I.
Programozási technológia I. 2.gyakorlat A tárgy célja A tárgy alapvető Java ismeretek nyújt. A fő célja, hogy a hallgatók képesek legyenek az UML diagramokból Java kód előállítására. Félév tematikája Bevezetés,
Mobil Informatikai Rendszerek
Mobil Informatikai Rendszerek Android NDK Native Development Kit Sicz-Mesziár János sicz-mesziar.janos@nik.uni-obuda.hu Mezei József mezei.jozsef@nik.uni-obuda.hu 2018. április 22. NDK Native Development
Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Rendszermodellezés Modellellenőrzés Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Ismétlés: Mire használunk modelleket? Kommunikáció, dokumentáció Gondolkodás,
COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group
COMET webalkalmazás fejlesztés Tóth Ádám Jasmin Media Group Az előadás tartalmából Alapproblémák, fundamentális kérdések Az eseményvezérelt architektúra alapjai HTTP-streaming megoldások AJAX Polling COMET
Kivételkezelés, naplózás. Exception handling, logging
Kivételkezelés, naplózás Exception handling, logging Try-catch try { // Kódrészlet, amely kivételt eredményezhet catch (Exception1 object1 ) { // Az Exception1 kivétel kezelésének megfelelő kód catch (Exception2
GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell
Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?
Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii
Kommunikációs rendszerek teljesítőképesség-vizsgálata
Kommunikációs rendszerek teljesítőképesség-vizsgálata (3. előadás) Dr. Lencse Gábor lencse@sze.hu https://www.tilb.sze.hu/cgi-bin/tilb.cgi?0=m&1=targyak&2=krtv 1 Miről lesz szó? Az OMNeT++ diszkrét idejű
Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
Rendszermodellezés: házi feladat bemutatás
Rendszermodellezés: házi feladat bemutatás Budapest University of Technology and Economics Fault Tolerant Systems Research Group Budapest University of Technology and Economics Department of Measurement
Objektumok inicializálása
Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja
Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban
Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban Nagy Attila Mátyás 2016.12.07. Áttekintés Bevezetés Megközelítés Pilot tanulmányok
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)
Dr. Schuster György október 30.
Real-time operációs rendszerek RTOS 2015. október 30. Jellemzők ONX POSIX kompatibilis, Jellemzők ONX POSIX kompatibilis, mikrokernel alapú, Jellemzők ONX POSIX kompatibilis, mikrokernel alapú, nem kereskedelmi
C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21
C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)
Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák
Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/ Mi is az a Virtualizáció? Az erőforrások elvonatkoztatása az
C++ programozási nyelv
C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért
(kernel3d vizualizáció: kernel245_graph.mpg)
(kernel3d vizualizáció: kernel245_graph.mpg) http://www.pabr.org/kernel3d/kernel3d.html http://blog.mit.bme.hu/meszaros/node/163 1 (ml4 unix mérés boot demo) 2 UNIX: folyamatok kezelése kiegészítő fóliák
Operációs rendszerek. Az NT folyamatok kezelése
Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok
Memóriakezelés, dinamikus memóriakezelés
Metódus: függvények és eljárások összefoglaló neve. Memóriakezelés, dinamikus memóriakezelés Nézzük végig, a C++ memóriakezelését. Alapvetően három fő memóriaterületet különböztetünk meg. Végrehajtási