AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ProcessMemory

Ein Thema von Lord Shadow · begonnen am 20. Feb 2008 · letzter Beitrag vom 22. Feb 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Problem mit ProcessMemory

  Alt 22. Feb 2008, 11:55
Zitat von Lord Shadow:
Ok der Alrotihmus müste nun funktionieren mir ist klar warum so ein Salat ruaskam.

Aber die Geschwindigkeit läst sehr zu wünschen übrig -.-
[...]
Wie könnte man das schneller bekommen?
Indem Du erstmal beschreibst, was der "Alrotihmus" (erinnert mich spontan an Harry Potter...) überhaupt tun soll. Die Art und Weise wie Du da durch den Speicher pflügst ist extrem ineffizient...

Ändere als erstes mal Deine komische Winzig-Buffersize von 100 zu 4096 (page size) oder 65536 (fsmapsize), ReadProcessMemory ist relativ langsam weil es eine Menge Arbeit auf Kernel-Ebene bedeutet. 4096 ist die übliche Größe einer Speicherseite (memory page), das sind die kleinsten Elemente die jeweils einzeln gemappt werden. Indem du jedes Mal nur 100 Bytes liest, verursachst Du also knapp vierzigfachen Overhead beim Speicherzugriff...

Desweiteren ist die Frage, nach was für Strings du suchst. Sind die nullterminiert oder längenbestimmt? Du suchst Dir ja ohne Rücksicht auf Verluste nur Ascii-Zeichen aus dem Speicher. Logisch dass da viel Blech bei rumkommt.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Lord Shadow

Registriert seit: 10. Okt 2007
15 Beiträge
 
#12

Re: Problem mit ProcessMemory

  Alt 22. Feb 2008, 13:16
Danke für den Tipp mit der Size werden ich noch probieren Mir ist auch wurscht ob ich nur nach Strings durchpflüge. Es funktioniert nun wunderbar auch relativ schnell nachdem ich mal geschaut habe welchen Typ der Speicher hat wo die Zieldaten drin stehen. Es war Private und wenn ich nur diese Betrachte sind es nur noch ca. 25 Offsetberreiche.

Aber nur mal als Zusatzinformation, wie erkenne ich Strings im Speicher? Ich hab gehört sie enden mit #0 aber wie fangen sie an

Mfg Shadow
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Problem mit ProcessMemory

  Alt 22. Feb 2008, 13:23
Du erkennst sie gar nicht. Das mit dem #0 wäre zwar ein Indiz, aber sehr unsicher. Du könntest natrülich mit dem Code durch eine Art Rechtschreibprüfung gehen und dadurch erkennen, wo Textstellen sind. Aber generell ist nix markiert als irgend ein Datentyp. Da stehen immer nur 0 und 1. Was es sein soll, ist eine Frage der Interpretation. Und die gestaltest du als Programmierer. Im ausführbaren Code ist sie aber nicht mehr zu erkennen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz