ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Suche | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
|
||||||
Holger
Nutzer
09.01.2012, 20:40 Uhr [ - Direktlink - ] |
Thema: Test
Brett: Forum und Interna ¤ ¦ ¨ ' ¸ ¼ ½ ¾ ¤ ¦ ¨ ' ¸ ¼ ½ ¾ -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
09.01.2012, 20:35 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Ahh, so ergibt es einen Sinn. Das hat nichts mit dem Punkt zu tun, sondern mit dem Leerzeichen, das nach Löschen des Bits ein null-byte ist und wie ein String-Ende behandelt wird. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
09.01.2012, 20:10 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Welches Satzzeichen, welcher Buchstabe? Es kann eigentlich nicht passieren, weil diese Bit-Clear Operation ziemlich genau und auch umkehrbar die Groß- und Kleinbuchstaben aufeinander mappt. Einziger Fehler, den ich erkennen kann, ist, dass ÿ wie ein ß behandelt wird, was allerdings nicht so wichtig ist, weil es weder das große ß, noch das Ÿ im 8 Bit Zeichensatz des Amigas gibt. Klar, das ist keine richtige alphabetische Sortierung oder Ordnung nach DIN 5007 oder ähnliches, aber als einfacher String-Vergleich sollte er eigentlich funktionieren. -- [ Dieser Beitrag wurde von Holger am 09.01.2012 um 21:13 Uhr geändert. ] |
|||||
Holger
Nutzer
09.01.2012, 17:29 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Wieso? Glaubst Du, den User interessiert es, ob Satz- und Sonderzeichen korrekt nach ASCII-Code sortiert sind? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
09.01.2012, 17:26 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Zu Beginn musst Du natürlich überprüfen, ob Dein Knoten überhaupt zwischen Anfangs- und Endknoten liegt. Gehört er vor den ersten oder hinter den letzten, weißt Du ja, was zu tun ist. Zitat:Nö, wie denn? Wenn Du die Anfangssituation geprüft und den Algorithmus korrekt implementiert hast, gibt es überhaupt kein Problem. Du weißt mit Sicherheit, dass der Knoten hinter A und vor E gehört, also weißt Du, dass er zwischen A und E gehört. Gibt es zwischen diesen beiden Knoten keinen weiteren (also auch keine Mitte) mehr, bist Du fertig. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
05.01.2012, 19:51 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Genau das schrieb ich bereits vor ein paar Stunden. Die Gesamtanzahl an vor/zurück Schritten ist (ungefähr) gleich der Anzahl Knoten. Zitat:Für Deinen Zweck läuft es so ab: 1. Du hast einen Anfang (erster Knoten) und ein Ende (letzter Knoten). 2. Du besorgst Dir den mittleren Knoten zwischen diesen beiden (Pivot) 3. Du vergleichst Deinen neuen Knoten mit dem Pivot 4. Ist der neue Knoten kleiner, ersetzt der Pivot Deinen Endknoten, ist er größer, ersetzt er Deinen Anfangsknoten. Gleichheit kann bei Dir nicht auftreten 5. Befinden sich zwischen Anfangs- und Endknoten noch andere Knoten, gehe zu Schritt 2. 6. Jetzt fügst Du den neuen Knoten zwischen A und E ein fertig Zitat:Das würde die Anzahl der Schritte während des Suchens halbieren. Zitat:Und natürlich auch in irgendeiner Datenstruktur merken. 2*log₂(n) Knoten. Zitat:Ja, was das reine Steppen angeht. Der eigentliche Performance-Killer und auch der Grund, überhaupt binäre Suche anzuwenden, sind die String-Vergleiche. Die kann man weiter reduzieren, wenn man, wie hier schon angesprochen, Interpolationssuche verwendet. Die Verfahren sind sich allerdings so ähnlich, dass es durchaus sinnvoll ist, zuerst die Binäre Suche zu implementieren. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
05.01.2012, 12:29 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Das wusstest Du aber nicht. Trotzdem hast Du angenommen, dass es schneller wäre. Zitat:Einen Index horten? Du brauchst keinen Index, sondern die umgekehrte Operation: für eine gegebenen Index den richtigen Knoten finden. Das ist trivial. Um einen Knoten mit Index x zu finden, initialisierst Du Deinen Variable mit dem Head-Knoten und ersetzt ihn dann x-Mal durch seinen next-Zeiger. Wenn Du Dir den Knoten und seinen Index in den Zwischenschritten merkst, kannst Du auch diesen als Ausgangsbasis benutzen, um zum nächsten Index zu gelangen, in dem Du die Differenz vor oder zurück gehst. Bei der Binären Suche ergeben sich dabei folgende Iterationen: n/2 Schritte vor n/4 Schritte vor oder zurück n/8 Schritte vor oder zurück n/16 Schritte vor oder zurück n/32 Schritte vor oder zurück usw. Offensichtlich musst Du in diesem Fall exakt n viele next/prev Pointer auslesen, d.h. so viele wie bei der linearen Suche im worst case. Dafür musst Du aber deutlich weniger Strings vergleichen. Das bringt bei vielen ähnlichen Strings einen deutlichen Schub. Andererseits frag ich mich immer noch, wo da die Zeit verbraten werden soll, bei 2000 Einträgen und dem gezeigten Assembler-Code. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
04.01.2012, 20:31 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat: http://de.wikipedia.org/wiki/Interpolationssuche oder http://bit.ly/yIHET7 -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
04.01.2012, 20:28 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Warum sollte es schneller sein, Speicherbereiche, die gar nicht mehr zum String gehören, zu vergleichen? Man muss an der Stelle deshalb nicht auf null testen, weil die Schleife in jedem Fall beendet wird: entweder ist der andere String an der Stelle auch null, dann wird abgebrochen oder er ist ungleich, dann wird ebenfalls abgebrochen. Man sollte aber schon verstanden haben, was der Code tut, den man benutzt. Andere Frage, was ist hiermit: Zitat:Warum ist es jetzt plötzlich schon ab 1000 Files nicht mehr schnell genug? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
04.01.2012, 20:13 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Und wann testest Du es auch mal mit anderen Laufwerken? Zitat:Und dann kommst Du zur Erkenntnis, dass ExNext im Vergleich dazu schneller ist… nachdenken könnte manchmal etwas helfen. Zitat:Wieso sollte es? Du willst doch wohl nicht max. 10 Dateien pro Sekunde einlesen, oder? Zitat:Wie jetzt, wird nun das Einlesen langsamer oder der „Flaschenhals“ des Einfügens, der auch für die ersten 1000 Files 1000 mal ausgeführt werden muss? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
04.01.2012, 15:22 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Da musst Du wohl mal ein bisschen konkreter werden. Mit welchen Typen von Datenträger hast Du denn getestet? Hardfile, native Directory, RAM Disk… Bzw. mit welchen Dateisystemen, FFS, SFS, ect. Zitat:Vielleicht mit Deiner Vorgehensweise. Wenn Du zwischen den beiden einen spürbaren Unterschied feststellen kannst, stimmt offensichtlich etwas nicht. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 19:31 Uhr [ - Direktlink - ] |
Thema: filerequester task
Brett: Programmierung @AGSzabo: Es gibt eine Menge Faktoren, die da eine Rolle spielen. In Deinen Setup werden in den meisten Fällen Daten aus einem Cache unter Verwendung der CPU kopiert, d.h. es geht ziemlich schnell und kann gleichzeitig nicht mehr durch asynchrone Abarbeitung beschleunigt werden. Native Linux-Programme sind da direkter, was nicht unbedingt immer vorteilhaft sein muss. Vor allem bot die Architektur bis vor kurzem keinerlei Anreize, anwendungsseitig asynchrone I/O zu verwenden. Darauf sollte man aber seine Amiga-Software nicht ausrichten. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 12:30 Uhr [ - Direktlink - ] |
Thema: filerequester task
Brett: Programmierung Zitat:Die Datenübertragung erfolgt im Idealfall auf unterster Ebene via DMA. Aber nur, wenn man dam System eine Chance dazu gibt. Dazu muss das Programm dem System auch mitgeteilt haben, dass es etwas tun soll. D.h. direkt nachdem der Lesetask einen Eintrag erhalten hat (dann ist er auch aktiv), fordert er den nächsten an. Danach berechnet der GUI-Task das Layout, während das Laufwerk Daten zum Controller schaufelt. Wenn man die nächste Leseanfrage erst stellt, nachdem man das Layout berechnet hat, muss das Laufwerk Däumchen drehen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 12:25 Uhr [ - Direktlink - ] |
Thema: add Node to List sorted Algorithmus
Brett: Programmierung Zitat:War es wirklich ein Problem für Dich? Oder stellst Du auch gerne mal Fragen, bevor Du selber drüber nachdenkst? |
|||||
Holger
Nutzer
03.01.2012, 12:10 Uhr [ - Direktlink - ] |
Thema: filerequester task
Brett: Programmierung Zitat:Es ist jetzt kein Flaschenhals, solange der Datenträger vergleichsweise langsam ist. Bzw. fehlt Dir einfach nur der Vergleichswert dafür, wie schnell es sein könnte. Jedenfalls ist Dein Task mit Layoutberechnung beschäftigt, wenn eigentlich schon neune Daten gelesen werden könnten. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 12:06 Uhr [ - Direktlink - ] |
Thema: add Node to List sorted Algorithmus
Brett: Programmierung Zitat:Ist das wirklich ein Problem für Dich? 1. Überprüfe nach wichtigerem Kriterium. Wenn ungleich ⇒ fertig 2. Ansonsten überprüfe nach zweitwichtigem Kriterium Du kannst beliebig viele Vergleichskriterien zu einem zusammenfassen. Darauf sollte man aber wirklich von selbst kommen. Wie packst Du Schuhe in ein Regal? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 11:56 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung @AGSzabo: Es gibt keinen schnellen Weg. Gerade da, wo es langsam ist (OFS/FFS ohne DirCache) ist auch das Ermitteln der Anzahl langsam. Ich würde trotzdem ExAll und nicht Examine/ExNext benutzen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 11:54 Uhr [ - Direktlink - ] |
Thema: Wieviele Files in Dir?
Brett: Programmierung Zitat:Da hast Du etwas grundsätzliches nicht verstanden. Der Name ist immer im Ergebnis enthalten. Gibst Du ED_TYPE an, bekommst Du Name und Type. Gibst Du ED_SIZE an, bekommst Du Name, Type und Size. Gibst Du ED_PROTECTION an, bekommst Du Name, Type, Size und Protection. Usw. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 11:47 Uhr [ - Direktlink - ] |
Thema: Windows: DAU-Fragen zur PowerShell
Brett: Andere Systeme Die Frage ist, um welche Software es sich handelt, deren UUID da in der Fehlermeldung steht. Dem Thema nach, würde ich auf den Internet-Explorer oder die MSHTML/MSXML Bibliothek tippen. Beides auf den neuesten Stand bringen, könnte helfen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 11:40 Uhr [ - Direktlink - ] |
Thema: filerequester task
Brett: Programmierung Zitat:und dann wunderst Du Dich, dass es langsam ist? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.01.2012, 11:36 Uhr [ - Direktlink - ] |
Thema: filerequester task
Brett: Programmierung Zitat:Wenn es eine Möglichkeit gibt, Forbid() zu vermeiden, sollte man diese auch nutzen. Die Lösung lautet: Das sollte Dir übrigens bekannt vorkommen. Genau so teilt die Workbench jedem Programm mit, welche Icons beim Start geöffnet waren. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
22.12.2011, 16:12 Uhr [ - Direktlink - ] |
Thema: filerequester task
Brett: Programmierung Man kann ganz einfach asynchrone I/O benutzen, d.h. statt DOS-Funktionen aufzurufen, die eine Message an das Dateisystem schicken und auf die Antwort warten, schickt man selber eine Message an das Dateisystem und kehrt zur Hauptschleife zurück. Diese muss natürlich wissen, dass es außer GUI-Events auch noch andere Messages gibt, um die man sich kümmern muss (Abholen, Eintrag/Einträge der Dateiliste hinzufügen, weitere Anfordern), aber das muss sie ja sowieso, auch dann, wenn man einen Sub-Task/Prozess anlegt. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
22.12.2011, 15:50 Uhr [ - Direktlink - ] |
Thema: SAM 460ex
Brett: Get a Life Zitat:aber die eigentliche Frage trotzdem nicht beantworten. Das stellt sicher, dass sein Expertenstatus niemals in Zweifel gezogen werden kann, hat er doch niemals eine unperfekte Antwort gegeben. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
22.12.2011, 15:46 Uhr [ - Direktlink - ] |
Thema: SAM 460ex
Brett: Get a Life Zitat:Vor wieviel Monaten hast Du das letzte Mal ernsthaft versucht, tploetz zu helfen? Hat ton es überhaupt jemals versucht? Jeder, der es ernsthaft längere Zeit versucht hat, weiß, dass es nicht das Geringste mit Fachgebiet oder Wissen zu tun hat. Nur mit der Frage, ob man einen Weg findet, die Ignoranz eines gewissen Users gegenüber jeglicher Hilfestellung zu verarbeiten. Sonst gäbe es überhaupt niemanden mehr, der überhaupt noch mit ihm reden würde. Schlau schweigen hilft ihm nämlich auch nicht. Die meisten haben allerdings keine Nerven mehr dafür. Wobei es auch der Anstand gebietet, wenn man schon nicht hilft und sich vornehm zurückhält, nicht noch über die herzuziehen, die es trotzdem noch versuchen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
22.12.2011, 14:13 Uhr [ - Direktlink - ] |
Thema: DONOTWAIT und WAIT in OS3.9 falsch implementiert ?
Brett: Amiga, AmigaOS 4 Zitat:Oooder… es läuft nicht kurz, sondern länger als 5 Sekunden. Dann benutzt man vorzugsweise WAIT, wenn das nächste Programm definitiv erst nach Beendigung dieses Programms gestartet werden soll, also DONOTWAIT keine Option ist. Somit hilft es sehr wohl, wenn Programme voneinander abhängig sind. Natürlich könnte ich auch stattdessen auch den Requester in Kauf nehmen und mich oder denjenigen, dem ich das System eingerichtet habe, ermahnen, niemals auf „nicht warten“ zu klicken. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
20.12.2011, 13:01 Uhr [ - Direktlink - ] |
Thema: DONOTWAIT und WAIT in OS3.9 falsch implementiert ?
Brett: Amiga, AmigaOS 4 Zitat:Wieso liege ich falsch, wenn Du etwas falsches aus dem Handbuch herausliest? Zitat:Ja was denn nun? „läuft direkt weiter“ oder „wartet x Sekunden“? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
19.12.2011, 16:18 Uhr [ - Direktlink - ] |
Thema: DONOTWAIT und WAIT in OS3.9 falsch implementiert ?
Brett: Amiga, AmigaOS 4 Zitat:Aber die Beschreibung sagt doch exakt das: „warten“ und „nicht warten“ schließen sich nunmal aus. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
19.12.2011, 16:13 Uhr [ - Direktlink - ] |
Thema: Dreiecksproblem mit Vektorrechnung
Brett: Programmierung Zitat:Exakt genausoviel wie mit einer über den Pythagoras ausgerechneten Länge (wie von Lippi vorgeschlagen). Was aber gesucht wird, sind die Koordinaten des dritten Punktes. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
19.12.2011, 16:07 Uhr [ - Direktlink - ] |
Thema: filerequester task
Brett: Programmierung Zitat:Die asl.library benutzt denselben IDCMP für den Dateirequester wie das Fenster, das geblockt wird. Daraus ergibt sich Möglichkeit 3: solange der Requester offen ist, alle Messages für andere Fenster ignorieren. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
16.12.2011, 19:24 Uhr [ - Direktlink - ] |
Thema: DONOTWAIT und WAIT in OS3.9 falsch implementiert ?
Brett: Amiga, AmigaOS 4 Ich kann irgendwie nicht erkennen, wo der Widerspruch zwischen der WB3.0 Beschreibung und dem von Dir beschriebenen WB3.9 Verhalten sein soll. Entweder Du sagst „nicht warten“ oder Du sagst „warte n Sekunden“. Was wäre die Alternative? Du sagst, wie viele Sekunden er nicht warten soll? -- [ Dieser Beitrag wurde von Holger am 16.12.2011 um 19:24 Uhr geändert. ] |
|||||
|
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |