Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Nur halbe CPU-Auslastung. Warum wird nicht alles genutzt?

Frage Entwicklung Java

Mitglied: baldrianforte

baldrianforte (Level 1) - Jetzt verbinden

06.02.2010, aktualisiert 19:36 Uhr, 11412 Aufrufe, 14 Kommentare

Hallo.

Ich bin Student und schreibe in Java meine Programme.
Es geht experimentell darum, in einem riesigen Array das größte Element zu suchen. Rekursiv.

Wie dem auch sei, ist ja auch egal.

Nach etwa 5 Sekunden macht sich der Lüfter bemerkbar. Gucke ich in den Leistungsmonitor von Vista,
wird mir angezeigt, dass die CPU nur zu 50% ausgelastet ist.

Ich habe ein DualCore 2 Duo T8300 2,4GHz pro Kern.

Wie kriege ich meinen Rechner dazu, dass der Prozessor zu 100% ausgelastet wird, wenn ich es so möchte?
Mitglied: affabanana
06.02.2010 um 19:55 Uhr
Hallo Du

Wenn Du student bist solltest Du das ja eigentlich Wissen

Dein Java Programm kann nur einen Kern auslasten.

2 =100%
1 = 50%

Gruass affabanana

PS: Studenten wissen woll immer weniger woher man Informationen holt


http://www.google.com
Bitte warten ..
Mitglied: LordGurke
06.02.2010 um 20:30 Uhr
Und um beide Kerne auszulasten, müsstest du diese Aufgabe zumindest auf zwei verschiedene Threads aufteilen. Das reicht meines Wissens dazu, um beide Kerne zu nutzen.
Bitte warten ..
Mitglied: baldrianforte
06.02.2010 um 20:33 Uhr
Mir fallen zwei Möglichkeiten ein:
1.) Vista reserviert sich die Kapazität.
2.) Es wird nur einer von zwei Kernen beansprucht.

oder es liegt an etwas anderem.

Auch unter Java muss möglich sein, die CPU voll zu beanspruchen.
Evtl. liegt es an einer Systemeinstellung unter Vista oder es fehlt was in meinem Programm.
Bitte warten ..
Mitglied: baldrianforte
06.02.2010 um 20:35 Uhr
Danke, maxi89. Das heißt, ich muss zwei Aufgaben parallel laufen lassen?
Hm, ich könnte das Array halbieren.
Aber wie lasse ich zwei Methoden gleichzeitig laufen??
Bitte warten ..
Mitglied: LordGurke
06.02.2010 um 20:38 Uhr
Sorry, bei Java bin ich lediglich bis zu dem Stand vorgedrungen, dass ich eine Datei auf- und wieder zumachen kann. Von Threading habe ich leider nichtmal den Hauch einer Ahnung, wie und ob das unter Java geht
Bitte warten ..
Mitglied: LordGurke
06.02.2010 um 20:41 Uhr
Punkt zwei stimmt.
Wenn du im Tassenmanager im Reiter "Leistung" nur einen Kurvenverlauf siehst, musst du möglicherweise erst noch unter Ansicht -> CPU-Verlauf die Option "Ein Diagramm pro CPU" aktivieren.
Dann siehst du ganz genau welcher Kern gerade wie viel zu tun hat.

Bei Punkt 1 muss ich widersprechen:
Vista reserviert sich keine Kapazität, es ist unter jedem Betriebssystem so, dass ein Prozess auf nur einem Prozessor ausgeführt werden kann. Und da ein Multicore-Prozessor im Grunde ja einzelne Prozessoren darstellt, wird das OS ein Programm nur auf einem Kern ausführen.
Ob jetzt mehrere Threads reichen, um sich auf alle Kerne zu verteilen, oder ob es wirklich eigenständige Prozesse sein müssen, weiß ich jetzt nicht aus dem Kopf - eigentlich müssten die Threads reichen.
Zumindest kann der Apache mit nur einem Prozess und 20 Threads alle 16 Kerne eines Servers beanspruchen
Bitte warten ..
Mitglied: StefanKittel
06.02.2010 um 20:57 Uhr
Hallo,

du kannst das ganz einfach ausprobieren und mit calc n! einer großen Zahl berechnen lassen.
Nutze mal einen calc und einmal 2xcalc.

Stefan
Bitte warten ..
Mitglied: baldrianforte
06.02.2010 um 21:14 Uhr
Hallo Stefan,

was ist calc? In der API ist das nicht zu finden.
Oder meinst Du, ich sollte mir eine Methode schreiben, die das macht?
Iterativ oder rekursiv?
Bitte warten ..
Mitglied: Pjordorf
06.02.2010 um 21:19 Uhr
Hallo baldrianforte,

Ich bin Student und schreibe in Java meine Programme.
Es geht experimentell darum, in einem riesigen Array das größte Element zu suchen. Rekursiv.

Wie dem auch sei, ist ja auch egal.

Nach etwa 5 Sekunden macht sich der Lüfter bemerkbar. Gucke ich in den Leistungsmonitor von Vista,
wird mir angezeigt, dass die CPU nur zu 50% ausgelastet ist.
1 Kern wird verwendet

Ich habe ein DualCore 2 Duo T8300 2,4GHz pro Kern.
2 kerne vorhanden

Wie kriege ich meinen Rechner dazu, dass der Prozessor zu 100% ausgelastet wird, wenn ich es so möchte? baldrianforte
Als java Entwickler (und dann noch als Student) solltest du vom Multithread Applikation schon mal was gehört haben. Schau doch mal hier Writing multithreaded Java applications oder hier http://java.sun.com/docs/books/tutorial/essential/concurrency/ wie so etwas geht. Dann kannst du auch ohne probleme deine 2 Kerne zu je 100% auslasten.

Peter
Bitte warten ..
Mitglied: LordGurke
06.02.2010 um 21:26 Uhr
Mit calc meint er vermutlich den Windows-Taschenrechner ;)
Bitte warten ..
Mitglied: StefanKittel
06.02.2010 um 22:49 Uhr
in der tat. nichts ist einfacher um cpu last zu erzeugen...
Bitte warten ..
Mitglied: baldrianforte
06.02.2010 um 23:02 Uhr
Der WindowsRechner ist wohl auch nicht auf Multiprozessorbetrieb ausgerichtet. Auch nur 50% Auslastung.
Bitte warten ..
Mitglied: baldrianforte
06.02.2010 um 23:03 Uhr
Danke, Peter. Werde mir das genauer angucken.
Bitte warten ..
Mitglied: StefanKittel
06.02.2010 um 23:24 Uhr
1 x calc laufen lassen = 1 Thread/Process = 50% Last
2 x calc laufen lassen = 2 Thread/Process = 100% Last

1000000000 und dann n! in der wissenschaftlichen Ansicht
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Windows 7
gelöst Windows Update bei virtuellem Windows 7 - hohe CPU Auslastung und keine Reaktion (6)

Frage von IT-Alexander zum Thema Windows 7 ...

Microsoft
Server 2012 cpu Auslastung durchgehend bei 10 prozent (1)

Frage von thomasreischer zum Thema Microsoft ...

Netzwerkmanagement
gelöst Sophos UTM220 - Appliance CPU Auslastung LOG-Datei downloaden? (7)

Frage von 1410640014 zum Thema Netzwerkmanagement ...

Hyper-V
Verständnisfrage zu CPU Auslastung (5)

Frage von AndreasOC zum Thema Hyper-V ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...