AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Generics / Speicherprobleme in der IDE

Ein Thema von ventiseis · begonnen am 23. Apr 2015 · letzter Beitrag vom 29. Apr 2015
Antwort Antwort
Seite 2 von 3     12 3   
ventiseis

Registriert seit: 15. Jan 2009
Ort: 94032 Passau
41 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#11

AW: Generics / Speicherprobleme in der IDE

  Alt 23. Apr 2015, 20:31
Wie sind die Konditionen? (Freeware, OpenSource, Shareware, zeitlich begrenzte Testversion, ... )
Zitat von der Website:
Zitat:
It uses the Apache License 2.0.
Bastian
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.462 Beiträge
 
Delphi 10.1 Berlin Professional
 
#12

AW: Generics / Speicherprobleme in der IDE

  Alt 23. Apr 2015, 21:30
Zitat:
Dann muss dieser Typ nur einmal ins Objektmodell.
Dass dieser Irrglaube immer noch herumgeistert...
Jain. Der Compiler instanziert den Generic für jede DCU-Datei wo er deklariert wird. Erst der Linker vereint dann die Generics mit den selben Typen-Parametern (mit einem sehr langsamen Algorithmus => CompilerSpeedPack enthält einen Patch, damit Spring4D um welten schneller kompiliert).

Speicherverbrauch
Der ErrorInsight/Refactoring Parser trägt hier die Hauptschuld. Dieser verbraucht nämlich für DCU Dateien den doppelten Speicherplatz. Er lädt über den Compiler die DCU Dateien von denen er keine PAS Dateien findet (z.B. System.dcu, Controls.dcu, Forms.dcu, ...) und überträgt dann Teile, welche er gerade braucht, in seine eigene .NET Klassenstruktur. Somit hat man die DCU und die .NET Objekte zu den Daten aus der DCU im Speicher.
Trifft der Parser auf einen Generic (DCU oder PAS), dann geht der Speicher Verbrauch erst so richtig los, denn er instanziert den Generic und kopiert dabei sämtliche Typen. Wenn dann auch noch dank Garbage Collector sich niemand Gedanken macht, wo denn diese Generics-.NET Objekte noch referenziert werden, dann bleiben sie eben bis zum Schließen des Projekts im Speicher.

Dass der Compiler durch die ganzen Ändernung und die Generics natürlich auch mehr Speicher für seine Daten braucht, tut dem ganzen natürlich auch nicht wirklich gut.

Und dann kommt noch das Problem dazu, dass DCU Dateien, die von mehreren Projekten innerhalb einer Projektgruppe genutzt werden, nicht einmal, sondern für jedes einzelne Projekt im Speicher liegen. Hat man also 10 Projekte in einer Projektgruppe und kompiliert diese, dann sind da auch 10 System.dcu, SysUtils.dcu usw. im Speicher. Da hatte ich auch schon ein paar Ideen wie ich die vereinen kann, aber leider schreibt der Compiler in den Speicherbereich während des kompilierens Daten rein, womit man den DCU-Block ala XMS-Speicher under DOS austauschen müsste. Die notwendigen Swap-Codestellen lassen sich aber ohne Compiler-Quellcode recht schlecht alle aufspüren. Also bliebe nur ein empierisches Vorgehen mittels VirtualProtect(READONLY)+VectoredExecptionHandler. Dann müssten aber auch alle möglichen Codepfade durchlaufen werden, welche ich sicherlich nicht alle finden würde.

Geändert von jbg (23. Apr 2015 um 21:54 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.126 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Generics / Speicherprobleme in der IDE

  Alt 23. Apr 2015, 21:44
Wahnsinn, das war interessant.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
3.670 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#14

AW: Generics / Speicherprobleme in der IDE

  Alt 23. Apr 2015, 22:28
Ich war soeben auf der Webseite, kann dort aber nichts erfahren zu den Lizenzbedingungen. Habe hier einen Altrechner mit Firefox 2.0.0.20. Das sag ich nur, falls die Seite diesen Browser nicht mehr unterstützt.

Wie sind die Konditionen? (Freeware, OpenSource, Shareware, zeitlich begrenzte Testversion, ... )
Keine Ahnung, auf welcher Seite du warst aber so viel Text zu lesen unter dem Spring4D Logo isses echt nicht und da steht alles drin. Oder zeigt er die Seite überhaupt nicht an?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.462 Beiträge
 
Delphi 10.1 Berlin Professional
 
#15

AW: Generics / Speicherprobleme in der IDE

  Alt 23. Apr 2015, 22:43
Oder zeigt er die Seite überhaupt nicht an?
Firefox Version 2.0.0.20. Mit sowas würde ich mich nicht ins Netz trauen. Wann kam der raus? 2006 ?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
3.670 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#16

AW: Generics / Speicherprobleme in der IDE

  Alt 23. Apr 2015, 22:47
Oder zeigt er die Seite überhaupt nicht an?
Firefox Version 2.0.0.20. Mit sowas würde ich mich nicht ins Netz trauen. Wann kam der raus? 2006 ?
Da steht ja ZWEI als major version... ich hab 20 gelesen Naja, aber immerhin die DP scheint zu funktionieren.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.676 Beiträge
 
Delphi 2007 Professional
 
#17

AW: Generics / Speicherprobleme in der IDE

  Alt 24. Apr 2015, 08:47
Keine Ahnung, auf welcher Seite du warst aber so viel Text zu lesen unter dem Spring4D Logo isses echt nicht und da steht alles drin. Oder zeigt er die Seite überhaupt nicht an?
Ich kriege immer eine bitbucket-Werbeseite ("Get Started") angezeigt. Deine Seite taucht bestenfalls vorher kurz im Hintergrund auf. Kann ich das ohne Anmeldung nicht mal kurz checken?
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
3.670 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#18

AW: Generics / Speicherprobleme in der IDE

  Alt 24. Apr 2015, 09:12
Keine Ahnung, auf welcher Seite du warst aber so viel Text zu lesen unter dem Spring4D Logo isses echt nicht und da steht alles drin. Oder zeigt er die Seite überhaupt nicht an?
Ich kriege immer eine bitbucket-Werbeseite ("Get Started") angezeigt. Deine Seite taucht bestenfalls vorher kurz im Hintergrund auf. Kann ich das ohne Anmeldung nicht mal kurz checken?
www.spring4d.org leitet auf https://bitbucket.org/sglienke/spring4d weiter und das zeigt das hier an:
Miniaturansicht angehängter Grafiken
spring4d_page.jpg  
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.676 Beiträge
 
Delphi 2007 Professional
 
#19

AW: Generics / Speicherprobleme in der IDE

  Alt 24. Apr 2015, 09:29
So hätte ich mir das auch vorgestellt. Ich kriege das:
2015-04-24-09_26_39-git-mercurial-code-management-teams.jpg
- trotz deiner URL in der Adresszeile.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
3.670 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#20

AW: Generics / Speicherprobleme in der IDE

  Alt 24. Apr 2015, 09:34
Dann vergleich doch mal die url in deiner Addressleiste mit dem Link den ich im Post zuvor schrieb, ich geb dir nen Tip: RAUTE!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf