neuer Highlighter Test
Übersicht

klepto2Betreff: neuer Highlighter Test |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, ich arbeite gerade an einem Highlighing system für die BMax textarea und bräuchte mal ein paar daten bzw tests:
Hier ist der Link: http://www.eastwestgames.de/file.php?id=184 Ich bräuchte von euch die größe der Datei, die ihr geladen habt, die Zeit in Millisekunden und die Anzahl der Keywords. Die letzten beiden Sachen könnt ihr aus dem StatusText nach dem laden entnehmen. Es sind noch kleinere bugs drin, die aber bereits zum Teil gelößt sind. Ebenso arbeite ich gerade and den Multiline Comments. Danke. PS: Die Keywords im StatusText beziehen sich auf die in den Modulen enthaltenen Funktionen, Types, Methoden und Konstanten. Vielleicht könnt ihr noch kurz euren eindruck gegenüber der Geschwindigkeit äußern. |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
- Zuletzt bearbeitet von klepto2 am Fr, März 17, 2006 13:03, insgesamt einmal bearbeitet
![]() |
Justus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ladezeit: 287 Millisekunden
Keywords: 9336 Code: 640 Zeilen |
||
![]() |
YellowRiderEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Datei: 50kb, 1487 Zeilen
Ladezeit: 1169ms Keywords: 10441 mfg YellowRider |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ladezeit: 13208
Keywords: 15410 Size: maxide.bmx Finde ist genau so langsam, wie der originale ... Benutzt du einen ähnlich ineffizienten Ansatz? Für effizientere Ansätze kannst du Mal nach lexical analyzer oder flex googeln. zb http://www.gnu.org/software/flex/ |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
eleXityehemals "BlackProgrammer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Loading Time : 13230 ms Keywords : 22811 Size : 122 kb (maxide.bmx) Ladezeit ist ein bissche lang ... ![]() MFG |
||
nVidia 570GTX | AMD Phenom II X6 | 8 GB RAM | 1TB | Win 7 Ultimate 64 SP1 | B3D, BMAX, BP, C#
Projekt : Worklog |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
5558 millisecs
7144 KEyWords 117 KB (mapengine.bmx) |
||
between angels and insects |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erstmal danke für die Ergebnisse.
Natürlich ist das mit sicherheit nicht der schnellste Highlighter, wobei das Problem eher an der Geschwindigkeit des Richedit COntrols liegt, das BMax verwendet. Angenommen ich lasse das einfärben weg, dann verbessern sich die Zeiten bei mir (von Dateien die davor ca. 10000 ms gebraucht haben) auf etwa 1000 ms. @Dreamora: ich hab mir auch schon die ganzen Lexer angeschaut und viel davon gelernt. Trotzdem Danke. PS: noch ein vergleich: bei mir braucht er für die glew.bmx im pub ordner : MaxIDE : ca. 25 - 30 Sec mein Highlighter : 9187ms Also müsste meiner etwas schneller sein ![]() |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oder dein Computer so langsam ![]() Also bei mir sind MaxIDE als auch deine gleich langsam beim laden des Sources. (in der Zeit kann es Blide auch bald laden, nur dass das vorher noch die gesamten Module keywords reinholt für code completition) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also das macht meiner ja auch (im gegensatz zur MaxIDE). Und selbst wenn mein Computer langsam wäre, dann müsste er ja dennoch beides mal die selbe Zeit brauchen ![]() Wie gesagt, das größte Problem ist der Befehl FormatTextAreaText oder sein OOP equivalent. Wenn ich das weglasse und nur parse, dann braucht er für die glut.bmx knapp 1 sek (mit vorbereitung auf ein etwaiges Intellisense system) |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und warum benutzt du ihn dann? ![]() Habe letzthin einen Artikel gefunden wo das genau nicht gemacht wurde weil es zu langsam ist. Anstelle dessen wird der gesamte Text gerendert und danach wird einfach das was highlightet werden soll nochmal mit der entsprechenden Farbe drüber gezeichnet. Das ist scheinbar viel schneller. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du mir jetzt noch sagen könntest, wie man das am besten macht ![]() vorallem mit Bmax befehlen. Ich denke mal um das zu machen, müsste man ein eigenes Control schreiben und portieren, nur da hörts bei mir mit meinen rudimentären C Kenntnissen auf. |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da kommt das Problem: Die Page war noch net ma C sondern auf ASM zugeschnitten.
Aber allgemein ist die Idee dahinter, dass du erst schwarz schreibst (oder was die Grundfarbe ist) und danach jede andere Farbe. dadurch musst du nicht die ganze zeit hin und her wechseln, was ja das hauptproblem ist. Damit das funktioniert, musst du dich beim WM_PAINT Event reinhängen und dort diese eigene Übermalfunktion integrieren. Bei der MaxIDE geht das leider nicht so einfach, da sie ihre zuweisungen etc scheinbar nicht an einem punkt machen |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, ich hab noch mal ein paar optimierungen gemacht.
1. Es wird nur der aktuell sichtbare Teil gehighlighted. 2. Wird nachdem jede Zeile einmal gehighlighted wurde, die Überwachung für scrolling abgeschaltet. Bitte um Feedback: http://klepto2.kl.funpic.de/DL/highlighttest2.exe Danke |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
RichtEdit ist Schrott - besser ist Scintilla... nur da muß man irg. noch eigenen Lexer in C++ coden | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
RichEdit ist net Schrott.
Die verwendete Methode mit den Textstyles (WM_ irgendwas) ist das Problem, diese ist nämlich "sehr zeitintensiv" (du sagst ja auch net, das OpenGL Schrott ist, nur weil Texturenwechseln seine Zeit braucht. Das wäre exakt das gleiche, wenn du dort die Objekte so anzeigen lassen würdest, das jedes zweite eine andere Textur hat), weswegen das ständige wechseln Selbstmord ist. Sollte aber eigentlich jeder wissen, der eine IDE für ein kommerzielles Projekt macht, da selbst ich als Totalnoob die entsprechenden Artikel in 2min gegoogelt hatte ... Dieser Zeitaufwand ist auch der Grund warum er nie fertig wird mit Sources einlesen bzw. warum gewisse Projekte glei die IDE töten. Der gesamte Source wird eingefärbt und net nur der Teil der gerade sichtbar ist. Eigentlich ja für jeden einleuchtend, dass das so Mist ist (speziell Spieleprogrammierer sehen sowas normalerweise intuitiv, das man nicht "alles" zu betrachten braucht, wenn man nur einen Teil braucht) Naja ist BRL, mit IDEs und Dokumentationen haben sie es ja bekanntlich nicht so. Sind eher die "Modulprogrammierer" ![]() Würde allerdings wohl aus Erfahrung mit IDEs für DBP und PB die auf Scintilla basieren auch dazu raten, da Mal reinzuschauen ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreamora - ich kenne mich mit RichEdit-Kontrollierung über WinAPi nicht so aus - aber wenn es schlecht implementiert ist, dann muß es neu gemacht werden... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Müsste, ja.
Bin aktuell immer noch dabei, herauszufinden wie das Highlighting prinzipiell läuft im Editor etc. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es gibt mehrere Tweaks, um das Highlighing mit Richedit zu optiemiren, zum Beispiel das unterdrücken des Redraws, während des einfärbens, oder das verhindern von Nachrichten verarbeitung der Richedit. Diese sind jedoch schon im Source der BMAxGui implementiert. wenn das problem mit den flackernden scrollbars nicht wäre, dann wäre ich mit meinem Highlighter ganz zufrieden. Denn ich glaube nicht das es soviel schneller geht, ohne die verwendung von speziellen Controls oder hacks. | ||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hatte mal einen highlighter für html gecodet... hab eig. meiner meinung gut optimiert - es war saulahm. dann hab ich scintilla genommen - da ist sowas schon eingebaut - und ist pfeilschnell - so wie es sein muß... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
was ist scintilla eigentlich??? | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group