FreakyDrOC
Addicted
|
ich programmier seit 12 jahren abasic, quickbasic, pascal, c(++), pli, cobol, prolog, asm, java, c# (in ziemlich dieser reihenfolge) ich sag jetzt einfach mal, ich kenn genug konzepte ![;)](/images/smilies/wink.gif) (@FMF: das sollte jetzt keine flame-aufforderung sein)
|
FMFlash
tranceCoder
|
(@FMF: das sollte jetzt keine flame-aufforderung sein) das hatte ich auch nicht vor
|
h4de5
-
|
@ringding: gut, *konzeptumstürtz* vergess ma halt wieda liste.
maxt a typedef mit den elementn die du für chip brauxt (as flash said). und in da klasse dann so wie du des am anfang gmacht hast nur halt: .. TYP *abc; .. abc = new TYP[100millionentrillionentausendtausend]; ..
weis ned obs syntaxtisch richtix is, hab zur zeit kan compiler. probier halt mal.
|
FreakyDrOC
Addicted
|
Natürlich haben sowohl Arrays als auch Listen ihre Berechtigung. Nachdem ich aber nicht weiß, was das Programm tut, weiß ich auch nicht, ob eher die Liste oder eher das Array günstig ist. Jede Variante hat ihre guten und schlechten Seiten. Auch sehen wir hier ein typisches Beispiel für den alten Performance/Memory Trade-Off. es gibt immer mehr ansätze...mehrere lösungen zu sehen ist eine grundvorraussetzung ein guter programmierer zu sein ich habe deswegen nur den bis dahin nicht erwähnten ansatz der verketteten listen gebracht (ich will jetzt auch nciht diskutieren, wo wie welche vor/nachteile von was sind) entscheiden muss sowieso er
|
Ringding
Pilot
|
Außerdem fällt mir grade ein, dass es nur in einer sehr bochenen C Runtime Library so sein wird, dass er für realloc den doppelten Speicherplatz braucht. In der Regel sollten diese Operationen auf Page-Basis funktionieren und somit nicht mehr Speicher brauchen als die Größe des Arrays. Durch geschicktes Pagen könnte man sogar die Kopieroperation überflüssig machen, ich weiß allerdings nicht, ob das in typischen Implementierungen passiert.
|
FreakyDrOC
Addicted
|
das ist ja das problem am array: wenn nach dem array schon was im speicher steht, kann ers net eifnach erweitern...und teilen kann ers ja ah net (wie du vorher schon erläutertest) also geht nur ein (interner) kopiervorgang
|
thorn][bySSG
Little Overclocker
|
ps: ich stelle mal meine meinung in den raum das klassen unübersichtlich sind und vorgänge nur unnötig komplizieren Klassen sind vielleicht zwar langsamer, aber sicher übersichtlicher als Funktionsaufrufe. ich halts nicht für notwendig variablen und funktionen in eine klasse zu stecken die wiederum in sektionen unterteilt ist bei denen man aufpassen muss (vor allem beim datenaustausch von klassen untereinander) das sie sich auch ja "sehen" können Wennst weißt wie des geht, is des voll easy und besser als wennst ana Funktion immer 10 variablen mitgeben mußt. Bei einer Klasse greife ich dann einfach auf diese zu. Exportire benötigte daten einfach mit return Methoden oder Pointern. Soll ich die aufgabe des Pogramms erleutern ?
|
h4de5
-
|
@thorn][bySSG: gib uns mal mehr infos über die aufgabe. muss des array / die liste
* nur einmal angelegt, * einmal dynamisch angelegt, * oda im programm vergrössert werden ?
@plz no flames. helf ma ihm lieber gemeinsam.
|
Ringding
Pilot
|
Soll ich die aufgabe des Pogramms erleutern ? Sicher
|
thorn][bySSG
Little Overclocker
|
OK !
A Netzliste is wie gesagt recht groß , sie besteht aus :
Inputs Outputs InOuts Wires und Zellen
Es geht um die Zellen, es gibt bei mir insgesamt 99.000 Zellen, aus diesen Zellen muß ich Register herausfilter, das wären dann 18.000 Bei den Registern gibt es Eingänge , sogennante PINS. Diese PINS haben Pfade dabei von wo das Signal kommt, ist fast immer eine andere Zelle der Netzliste oder halt ein Eingang des Chips. Nun muß mein Prog herausfinden von wo das Signal kommt und dann gehts so weiter.
Das Ziel ist es ein Signal des Chips vom inneren nach außen hin zuverfolgen und zu schauen ob es über Keinen sogennanten Snakepath geht ( falsche Clockdomains ) Enden muß ein Signal immer bei einem Bestimmten Clock, falls des nicht so ist so soll das Pogramm dies erkennen.
D.h. (meiner Meinung nach ) immer einen Schritt nach den anderen und immer muß dabei für jedes gefundene Register die gesammte Netzliste durchsucht werden. Mit I/O geht des halt entsprechend langsam.
MT brauch man da gar nicht probieren.
PS : Man hat mir gesagt : " Wenn wir wüßten wies geht, hätten wir das schon selber gemacht ".
Mein Problem is die Geschwindigkeit, die Algorithmen zur Analyse hab ich fast alle schon.
|
h4de5
-
|
bahnhof ![:D](/images/smilies/biggrin.gif) *nachdenk* hab eh grad nix zu tun
|
thorn][bySSG
Little Overclocker
|
|
Master99
verträumter realist
|
besteht eine möglichkeit, dass sich das programm z.b. 150MB im RAM reserviert und darin dann der dynamische Array gespeichert wird?
dann würd das hin&herkopieren entfallen...
|
h4de5
-
|
*lautdenk* also ein signal kommt von _chip.input_ herein. geht dann auch _zellen.register.PINS_ von dort dann weiter bis irgend wann auf _clock_ kommt. und du musst des jez einfach kervehrtherum machen ?! also vom clock zum _chip.input_
mmhh. i glaub wennst eh schon fast alle aNalyseAlgorithmen hast, sollt wir uns über solche grund-legenden sachen ned mehr den kopf abbrechen. ABER: für jedes gefundene Register die gesammte Netzliste durchsucht werden.
muss des sein ??!? wirds doch an gscheiteren algorythmus geben, dasst ned alles durchsuchen musst.
|
thorn][bySSG
Little Overclocker
|
@Master 99
Sicher, aber nicht die Ganze File, da ich ja nach bestimmten Syntaxen suchen muß und die kommen da sehr oft vor. Meist heißen die Zellen gleich und unterscheiden sich nur durch die Pfade der Pins. Ich muß des zur Laufzeit anlegen, da ich nicht weiß wie viele Zellen es gibt.
@h4de5
Sicher, geht das ,aber nur wenn ich alles im Speicher habe und das ist ja mein Prob. Wie soll ich das am besten anstellen.
Ich glaub wir sind vom ursprünglichen Problem ein bischen zu weit abgedriftet.
|