YourKit Java Profiler er en kommerciel CPU og hukommelse profiler software, der giver brugerne mulighed for nemt løse bred vifte af CPU og hukommelse relaterede problemer med ydeevnen.
YourKit Java Profiler har automatisk lækagesøgning, stærke værktøjer til analyse af hukommelsen distribution, et objekt dynge browser, omfattende hukommelse test som en del af din JUnit testprocessen, ekstremt lav profilering overhead.
Hvad er nyt i denne udgivelse:
- befuldmægtiget: Windows-version afsløring forbedret. Især er Windows 10 nu registreret korrekt, og Summary viser Windows-version med build-nummer.
- IDE integration: bug fast: NetBeans plugin muligvis ikke installeres på Windows 10
- CPU profilering: CPU sporing resultat korrektion nu kun anvendes, hvis -Dyjp.apply.calibration = true er specificeret i /bin/ui.ini
- Hukommelse profilering: optimering: forbedret lastning tid af memory øjebliksbilleder (især & quot; opgave 3 & quot; i gang)
- Hukommelse profilering: optimering: Object Explorer og andre visninger åbne hurtigere for nogle objekt sæt
- Hukommelse profilering: bug fast: hukommelsesfejl af midlertidige datastrukturer oprettet under snapshot loading
Hvad er nyt i version 2013 Build 13072:
- UI: bug fast: sporadisk & quot; java. lang.ClassCastException & quot;
- UI: dødvande detektor: bug fast: muligt & quot; dødvande detektor problemet: status misforhold & quot; undtagelser for nogle indgange
- befuldmægtiget: bug fast: IBM Java: & quot; java.lang.UnsatisfiedLinkError & quot; for indfødte metoder i com.ibm.oti.vm.VM
Hvad er nyt i version 2013 Build 13070:
- befuldmægtiget: Linux: bug fast: forkert session navn blev valgt i tilfælde af meget lange kommandolinjen, f.eks 'java' i stedet for den vigtigste klasse eller JAR navn
- befuldmægtiget: bug fast: startindstillinger probe_on, probe_off, probe_auto, probe_disable accepterede ikke den korte syntaks for indbyggede sonder, f.eks .Databases For com.yourkit.probes.builtin.Databases
- Agent: sonder, performance tællere: bug fast: FileOutputStream og proces I / O-hændelser blev ikke optaget i nogle Java-versioner
- IDE integration: NetBeans 8.0 Beta understøttet
- IDE integration: Mac OS X: bug fast: det profiler UI ville ikke automatisk forbindelse til den profilerede proces på grund af Java 7 s JavaAppLauncher manglende evne til at videregive sine kommandolinjeflag til java eksekverbare
Hvad er nyt i version 2013 Build 13066:
- CPU profilering:
- Snapshot sammenligning: forbedring: slave visninger & quot; Tilbage spor & quot ;, & quot; kaldede liste & quot; og & quot; Merged kaldede & quot; er blevet tilføjet for en metode valgt i & quot; Method liste & quot ;. De er især nyttige, når man analyserer en metode kaldes fra forskellige steder i de snapshots, der sammenlignes.
- J2EE højt niveau profilering er nu baseret på indbyggede probe resultater.
- Dette eliminerer overhead af tidligere anvendte dedikerede tilbagekald, som delvis gentagne den indbyggede sonde funktionalitet, samt udførte nogle operationer i runtime stedet for at udføre dem, når profiler åbner et øjebliksbillede.
- ikke længere eksisterer Ejendommen high_level_cpu_profiling i CPU prøvetagning eller sporing indstillinger. Opstart option disablej2ee er blevet fjernet. For at slå J2EE højt niveau profilering fra, skal du slå eller deaktivere tilsvarende sonder.
- CPU sporing: en ny start option _instrument_all_methods er blevet tilføjet til instrument primitive getters, settere og andre lignende korte metoder, som kun adgang objekt felter og / eller returnere en værdi. Som standard er sådanne metoder ikke instrumenteret til at reducere overhead. Brug denne indstilling, når startparametre tæller for alle kaldte metoder er mere værdifuld end den tid nøjagtighed og lavere overhead.
- UI: tilføjet evne til at vise metoder, der tog mindre end 1 ms ved at angive -Dyjp.show.shortest.methods = true i /bin/yjp.ini
- Optimering: Hot Spots view åbner meget hurtigere
- UI: tilføjet mulighed for at deaktivere nul-tid metoden korrektion ved hjælp af ejendommen -Dyjp.zero.time.methods = false i /bin/yjp.ini. Nul-tid korrektion betyder, at alle opkald til følgende metoder ignoreres:
- java.lang.Object: vent (*)
- java.lang.Thread: søvn (*)
- java.lang.Thread: udbytte (*)
- java.net.PlainSocketImpl: socketAccept (*)
- java.net.PlainSocketImpl: acceptere (*)
- java.net.ServerSocket: acceptere ()
- org.apache.tomcat.jni.Socket: acceptere (*)
- sun.nio.ch.ServerSocketChannelImpl: accept0 (*)
- sun.misc.Unsafe: park (*)
- java.util.concurrent.locks.LockSupport: park * (*)
- com.ibm.tools.attach.javaSE.IPC: waitSemaphore (*)
- sun.nio.ch.EPollArrayWrapper: epollWait (*)
- Teknisk set deres tid trækkes fra den, der ringer på op til opkaldet træet rod, når CPU profilering resultater lagt i UI. Med andre ord, er deres tid altid antages at være 0, når korrektionen er anvendt.
- Hukommelse profilering:
- Object Explorer: værdier er straks vist for genstande af følgende klasser:
- java.util.Date
- java.net.URL
- java.io.File
- java.util.zip.ZipFile
- java.util.jar.JarFile
- primitive værdi indpakning:
- java.lang.Integer
- java.lang.Long
- java.lang.Short
- java.lang.Boolean
- java.lang.Byte
- java.lang.Character
- java.lang.Double
- java.lang.Float
- atomare værdier:
- java.util.concurrent.atomic.AtomicInteger
- java.util.concurrent.atomic.AtomicLong
- java.util.concurrent.atomic.AtomicBoolean
- andre numeriske klasser:
- java.math.BigDecimal
- java.math.BigInteger
- refleksion:
- java.lang.reflect.Field
- java.lang.reflect.Constructor
- java.lang.reflect.Method
- (siden bygge 13.062) indsamling størrelse for indsamling klasser og deres underklasser:
- java.util.ArrayList
- java.util.Arrays $ ArrayList (returneret fra Arrays.asList ())
- java.util.HashMap
- java.util.HashSet
- java.util.Hashtable
- java.util.IdentityHashMap
- java.util.LinkedList
- java.util.PriorityQueue
- java.util.TreeMap
- java.util.Vector
- java.util.WeakHashMap
- Object Explorer: self henvisninger objekter er udtrykkeligt angivet med [Self henvisning], og de tilsvarende træ knudepunkter er blade nu for at undgå uendelig udvidelse
- Object explorer: tilføjet mulighed for at tilpasse det maksimale antal viste individuelle objekter med hjælp af ejendommen -Dyjp.max.objects.to.show = i /bin/yjp.ini. Standardværdien er stadig 500. Bemærk:. Indstilling større værdier øger hukommelsesforbrug og kan bremse UI
- Primitive arrays med alle de samme elementer er udtrykkeligt angivet i objekt opdagelsesrejsende, stier og andre visninger præsenterer enkelte objekter
- Analyse af arrays med et stort antal elementer er blevet forenklet ved hjælp af den nye handling Hukommelse | Vis Array elementer (Shift + F5) (også tilgængelige via en popup-menu), som åbner alle elementer af udvalgte henvisning array (r) i en ny fane, hvor de kan grundigt undersøgt med alle tilgængelige visninger.
- Denne handling er også tilgængelig som & quot; Åbn alle elementer i en ny fane & quot; hyperlink i objektet opdagelsesrejsende i tillæg til den & quot; Konfigurer vist arrayelement rækkevidde ... & quot; hyperlink til rådighed for arrays med skjulte elementer.
- Flettede stier: forbedring: særskilte knuder bruges til GC rødder og genstande bevaret fra flere objekter
- Flettede stier: forbedring: & quot;
Hvad er nyt i version 12.0.5:
- kunne ikke oprettes Agenten logfil, hvis session navn indeholdt Ugyldigt filnavn tegn.
Hvad er nyt i version 12.0.4:
- Denne version rettelser samplet tildeling optagelse, som kan gå ned den profilerede ansøgning, hvis CPU-sampling aldrig var blevet startet.
- Den medfølgende JRE er blevet opgraderet til Java 7.
Hvad er nyt i version 12.0.3:
- Understøttelse af FreeBSD 8 har forbedret
- Loading af snapshots med en stor mængde GC er stærkt optimeret.
- Denne udgivelse løser nogle problemer med JBoss, GlassFish, og OSGi Felix.
Hvad er nyt i version 12.0.1:
- Nye platforme Understøttet:
- Linux på ARM: kører profilerede programmer og / eller profiler UI understøttes på soft-float (ARMv5, ARMv7) og hårdt-float (ARMv7) JVMs
- Linux på PPC: kører profilerede programmer og / eller profiler UI understøttes på 32-bit (PPC) og 64-bit (PPC64) JVMs
- CPU profilering:
- CPU sporing overliggende er blevet væsentligt reduceret (forskellige profilerede programmer kører op til 10% -50% hurtigere end med den tidligere profiler udgave) og nøjagtighed er blevet forøget på grund af følgende forbedringer:
- nye adaptive sporing tilstand reducerer automatisk sporing overhead og gør resultaterne mere passende (se CPU sporing indstillinger)
- CPU sporing nu måler væg tid som standard (se CPU sporing indstillinger og tidsmålinger).
- Dette reducerer profilering over hovedet, fordi opnå væg tiden er hurtigere end at få CPU-tid.
- Væg tid er også mere præcis end CPU-tid, der giver et par nanosekund nøjagtighed ved måling tidsintervaller.
- interne forbedringer reduceret profilering overliggende
- Alle CPU profilering indstillinger anvendes i runtime er konfigureret i indstillingerne CPU prøvetagning og CPU opsporing indstillinger
- Bemærk de relaterede ændringer:
- API: er blevet tilføjet to nye Controller metoder: startCPUTracing (Nullable String indstillinger) og startCPUSampling (Nullable String indstillinger). Metoder startCPUProfiling (...) er blevet frarådet.
- J2EE højt niveau profilering er nu konfigureret i indstillingerne CPU prøvetagning og CPU opsporing indstillinger
- start option noj2ee er blevet fjernet til fordel for det high_level_cpu_profiling ejendom i CPU prøveudtagning indstillinger og CPU opsporing indstillinger
- startindstillinger samplingperiod og samplingdelta er blevet fjernet til fordel for sampling_period_ms og sampling_period_delta_ms egenskaber i indstillinger CPU prøveudtagning
- tidsmåling er nu konfigureret i CPU prøveudtagning indstillinger og CPU opsporing indstillinger. En separat konfigurationsfil .walltime og en dedikeret start option walltimespec bruges ikke længere.
- start option filtre er blevet fjernet til fordel for CPU sporing indstillinger
- CPU sporing: væg tid metoder er ikke længere implicit behandlet som altid ikke-filtreret. Den tidligere adfærd kan skabe uventede overliggende hvis væg tidsmåling blev konfigureret for mange eller alle metoder.
- befuldmægtiget: tidsmåling er blevet forbedret for at sikre monotonicity når det er passende
- CPU prøvetagning: bug fast: native metode indpakning $$ YJP $$ kunne vises i stakke
- Hukommelse profilering:
- UI: ny funktion: Klasse trævisningen svarer til & quot; Klasse liste & quot ;, men viser klasser grupperet efter pakke
- UI: nye funktion: hukommelse visninger såsom klasse liste tillader udvælgelse af flere rækker. Dette påvirker slave ser indhold, såvel som handlinger som & quot; Vis valgte objekter & quot; og andre.
- & quot; Duplicate strygere & quot; inspektion: resultaterne er vist under en ny gruppering rod knude, som præsenterer det samlede affald i alle de dublerede strygere
- Optimering: snapshots med store primitive arrays åbnes hurtigere
- UI: optimering: opfyldelse af & quot; Indgående Referencer & quot; synspunkt er blevet dramatisk forbedret
- UI: forbedret beregning af nøjagtig bevaret størrelse i & quot; Class liste & quot; og lignende synspunkter: flere emner behandles per klik, hvis beregning hastighed tillader
- UI: forbedring: tilgængelige CPU-kerner bruges til parallelle beregninger i følgende synspunkter:
- Klasse liste
- Klasse træ
- Generations
- Sikring af adgang dækningsområder
- Klasse læssemaskiner
- Web-applikationer
- Object aldre
- UI: forbedring: & quot; beregne nøjagtige beholdt størrelser & quot; handling bruger tilgængelige CPU-kerner til at udføre beregninger parallelt
- UI: forbedring: & quot; beregne nøjagtige beholdt størrelser & quot; handling tvinger ikke sortering efter den tilbageholdte størrelse kolonnen, hvis beregningen fortsættes
- Optimering: tildeling optagelse overliggende er blevet reduceret til flertrådede programmer. Hvor stor den forbedring er, afhænger af & quot; Optag hvert N-th objekt & quot; indstilling. Ifølge tests, kode bliver profileret kører op til 30% hurtigere, når hver 10. objekt registreres (standardindstillingen), og op til 70% hurtigere, når hver 100. objekt registreres, sammenligne med den tidligere version
- webprogrammer: forbedring: webapplikation sammenhæng sti (URL) vises nu i tillæg til web-applikation navn
- webprogrammer: tilføjet understøttelse af Jetty (versioner 6, 7, 8)
- Klasse instans tæller telemetri (& quot; Class List & quot; fane), i modsætning til andre synspunkter telemetri, ikke automatisk med jævne mellemrum opdatere. Dette er for ydeevne overvejelser:. Indsamle statistikken kan tage en betydelig mængde tid i tilfælde af store dynger med mange genstande, derfor bør køre på efterspørgslen
- I stedet opdaterer den, når:
- & quot; Opdater & quot; trykkes, når fanen er synlig (en udtrykkelig opdatering)
- & quot; force Garbage Collector & quot; trykkes, når fanen er synlig (giver det mening at straks se ændringerne i objekt tæller og størrelser efter at tvinge garbage collection)
- et øjebliksbillede indfanges (indsamle statistikken er en del af fangsten)
- UI: Stier: bug fast: duplikere sti poster kunne vises under visse omstændigheder
- Telemetri:
- CPU-forbrug telemetri:. kerne CPU-tid, vises som en separat kurve, i tillæg til de vigtigste bruger + kerne CPU-tid graf
- AIX note: vi ved to funktioner til at måle proces CPU-tid på AIX: clock_gettime (CLOCK_PROCESS_CPUTIME_ID) og rusage (). Den første bruges som standard, fordi det ser ud til at give bedre resultater end sin modpart. Men det har en ulempe: Det giver ikke kerne og brugernes gange hver for sig. Det betyder, at du vil ikke se kernen tid telemetri. For at aktivere det, skal du angive start agent option _with_rusage at bruge rusage () i stedet.
- Graph rendering er blevet optimeret, hvilket gør UI langt mere lydhør, især når du bruger større skalaer
- Tråd state telemetri: bug fast: telemetri prøver kan ske ved lavere hastighed resulterer i huller i tråden staten telemetri graf
- Sonder:
- Ny funktion: evnen til at rydde tabeller. Slip af med ældre begivenheder, du ikke er interesseret i mere, eller give plads til nye begivenheder hvis grænsen bordet kapacitet er nået.
- Hvis du vil rydde bordet fra UI, brug & quot; Slet tabel (ler) ... & quot; linket i øverste højre hjørne af & quot; Probes & quot; fane.
- For at slette tabeller programmeringsmæssigt bruge profiler API metode Controller.clearUserTables (String ... tableNames)
- UI: & quot; Probes & quot; Fanen layout er blevet ændret til giver mere lodret plads til browsing lister event, og gøre UI mere konsekvent. Nu borde, tidslinje, begivenhed opkald træ og CPU-forbrug estimering faner er placeret på det samme niveau.
- Klasse lastning sonde kan aktiveres med opstart option sonde = classloading (standard) og handicappede med opstart option noprobe = classloading. Startup option builtinprobes = ingen indebærer nu noprobe = classloading.
- Sonder: API: forældet klasse com.yourkit.probes.ObjectIntWeakMap er blevet fjernet. Brug com.yourkit.probes.ObjectRowIndexMap i stedet.
- & quot; Tråd Life Cycle & quot; indbygget sonde: bug fast: Navneændring hændelser blev fejlagtigt forbundet til et par JVM indvendige gevind
- Udløsere:
- standard udløser beskrivelse fil er blevet ændret til /.yjp/triggers.txt
- IDE Integration:
- Eclipse, IntelliJ IDEA, NetBeans 7.0 og nyere plugin registrerer automatisk 32-bit og 64-bit JVMs.
- & quot; Profil & quot; indsats skal vide, om JVM til at lancere det profilerede ansøgning er 32-bit eller 64-bit, med henblik på at levere passende middel-version.
- Tidligere plugin fuldt påberåbt brugeren valget i & quot; 32-bit eller 64-bit JRE Selection & quot; fanebladet i plugin konfigurationen. Et forkert valg resulterede i JVM fejl opstod en fejl under initialisering af VM. Kunne ikke finde agent bibliotek.
- Nu er gjort forsøg på at automatisk at registrere JVM slags ved at indhente tilgængelige oplysninger fra IDE. Hvis påvisning lykkes, dens resultat tilsidesætter brugeren-made valg.
- Dette gør & quot; Profil & quot; handling arbejde ud af kassen i de fleste tilfælde.
- Bemærk: Vi beholdt & quot; 32-bit eller 64-bit JRE Selection & quot; Fanen som backup for de tilfælde, hvor den automatiske registrering er umuligt.
- Eclipse: Maven run konfigurationer understøttes i Eclipse 3.7 og nyere
- IntelliJ IDEA 12 understøttet
- NetBeans 7.3 understøttet
- NetBeans: bug fast: profilering enkelt klasse eller JUnit test måske ikke arbejde i Web-projekter
- J2EE Integration:
- J2EE integration guiden: tilføjet Jetty 6 og nyere støtte
- Brugergrænseflade
- Forbedring: venstre lodrette fane gruppe, der repræsenterer åbnet snapshots og tilsluttede applikationer nu forsøger at undgå scroller hvis mange faner åbnes, ved at forkorte fanen titler. Hvis den fulde fanen titlen ikke passer, er det stadig vil være tilgængelige via et værktøjstip.
- Filtre: tilføjet en hurtig måde at skifte mellem at anvende og ikke anvende filtre i UI:
- med en ny vigtigste menupunktet Indstillinger | Collapse Filtreret opkald
- værktøjslinjen, når profiler er tilsluttet en kørende applikation
- & quot; Filtre ... & quot; hyperlink i Legend når du arbejder med et øjebliksbillede
- Skalerbarhed: at gøre UI mere lydhør, når du arbejder med store snapshots, & quot; kaldede liste & quot; slave visning medregnes ikke automatisk, så snart valget i master ændringer af. I stedet bør beregning udtrykkeligt startes ved at klikke på et link. Som standard er automatisk beregning udføres for snapshots med mindre end 1.000.000 opkald rammer (dvs. unikke stakke), der dækker den største hovedparten af de virkelige verden snapshots. For at ændre tærsklen, angive -Dyjp.callees.auto.threshold = antal billeder i /bin/yjp.ini.
- Tilføjet understøttelse af høj kontrast farveskemaer. For at bruge den, skal du angive -Dyjp.system.colors = sandt i /bin/yjp.ini.
- yjp.sh startscriptet forbedret: Hvis YJP_JAVA_HOME miljøvariabel er angivet det har munkekloster i bundtet JRE og systemets standard Java, hvilket giver mulighed for at køre profiler UI under særligt Java-version uden at redigere startscriptet
- Resumé: tilføjet & quot; Kommandolinje & quot; ejendom til at repræsentere den fulde kommandolinje af Java-processen
- Ring til træ og ryg spor visninger: tilføjet element popup-menuen for at udvide valgte node ned til 5 niveauer, som et supplement til den eksisterende post, som udvider node fuldt
- Forbedring: Dialogen stil forenet i forbindelse med Hjælp og ikke-lukning knap placering
- Bug fast: det profiler vinduet kan blive usynlig efter profiler genstart, hvis en af tidligere anvendte skærme var ikke længere tilgængelig
- Bug fast: stack overflow undtagelse under visse sjældne tilfælde
- Bug fast: filvælgeren påberåbes fra dialogboksen Åbn Snapshot håndteres forkert Enter, når du kører UI på Java 7
- Diverse:
- Eksport med kommandolinjen: klasse liste eksporteres til ydeevne snapshots også (som set i fanen Hukommelse | Klasse liste)
- Advarsel: øjebliksbillede mappe konfigurationsfil er nu /.yjp/snapshotdir.txt
- Windows-installationsprogrammet: Den profiler er nu bundtet med Java 7 JRE. Bemærk:. Java 6 er stadig en fuldt understøttet platform
- befuldmægtiget: logfil navn er nu -.log til bedre separate logfiler fra forskellige applikationer
- befuldmægtiget:. tilføjet en mulighed for at gemme logfiler fra flere kørsler af det samme program i en serie af logfiler navngivne ..log stedet for at skabe en individuel logfil -.log for hver profilerede proces
- Denne tilstand kan være nyttigt, når profilering applikationer såsom servere, når der har en forenet log bedre end at have en separat log for hver server start.
- Hvis du vil bruge denne tilstand, skal du angive start option united_log
- Session navn er navnet på programmet, som ses i profiler UI, og som også bruges som standard til at navngive programmets snapshots. Det bliver automatisk valgt til særlig anvendelse basere på sit jar filnavnet, eller dets vigtigste klasse navn, eller den brugerdefinerede eksekverbare navn, eller på flugt konfiguration navn, når profilering indefra IDE. Navn Sessionen kan også eksplicit angives med opstart option sessionname =
- Løb nummer begynder med 1. Hvis den første logfil .1.log overstiger størrelsen grænse, en ny logfil .2.log vil blive oprettet og anvendes, må .3.log osv Grænsen størrelse er 1 MB som standard, kan og ændres med start option log_file_size_limit =
- Bemærk: de ældste logfiler ikke automatisk fjernes. Hvis du har brug for at rense dem op, gøre det manuelt eller skrive et script.
- befuldmægtiget: Groovy 2.0 understøttet
- befuldmægtiget: CPU opsporing og allokering omkodning hovedhøjde lidt mindre på IBM Java
- befuldmægtiget: bug fast: vedhæfte mode: forkert undtagelse handleren i konstruktør under visse omstændigheder
- befuldmægtiget: bug fast: mulig java.lang.VerifyError: Inkonsistente stackmap rammer på mål gren for bestemte kode mønstre kompileret med Eclipse compiler
- UI: remote profilering: bug fast: remote profilerede applikationer, der kører på forskellige maskiner, konfigureret til at bruge den samme port og begyndte på samme tid ikke kunne samtidigt tilsluttet i profiler UI
Hvad er nye i version 10.0:
- Denne nye store udgivelse indeholder en masse nye funktioner, forbedringer og fejlrettelser. Understøttelse af AIX (PPC og PPC64) platformen blev tilsat.
- En ny & quot; triggere & quot; funktion giver brugerne mulighed for automatisk at udføre forskellige handlinger på bestemte begivenheder (høj CPU eller hukommelsesforbrug, udførelse af metoden osv.).
- Tildeling optagelse kan samle statistik affaldsindsamling pr klasse.
- Ydelse snapshots kan udvindes fra hukommelsen snapshots.
- Kalibrering nøjagtigheden af CPU-sporing blev forbedret.
- CPU-forbrug og tid tilbragt i skrald indsamler vises nu på den samme graf.
- Som sædvanlig mange forbedringer af UI blev gennemført.
Hvad er nyt i version 9.5.1:
- forbedring: flere OSGi container applikationer kan profileret uden behovet for manuelt at Twick OSGi indstillinger for at tillade indlæsning af profiler klasser. Især dette inkluderer GlassFish 3.1.
- IDE integration: forbedrede NetBeans plugin installation på Windows Vista og Windows 7. Tidligere kunne IDE integration guiden mislykkes, hvis NetBeans blev installeret i et beskyttet bibliotek som & quot; Program Files & quot; på grund af Windows s Bruger Access Control (UAC). Nu er passende UAC prompt vises, når det er nødvendigt, at lade guiden lykkes.
- IDE integration: NetBeans 7.0 M2 understøttet
- IDE integration: profiler plugin UI: forbedringer
- UI: Velkommen skærm: forbedret brugervenlighed på lav opløsning skærme
- UI: åben dialog øjebliksbillede: gruppering snapshots af session er nu valgfri
- Bug fast: UI: åben dialog øjebliksbillede måske forkert genopfriske under visse sjældne tilfælde
Begrænsninger :
- 15 dages evaluering
Kommentarer ikke fundet