Build Instructions/de

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
 
(32 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Quicklinks}}
+
{{Quicklinks|Build_Instructions}}
  
This page covers building OpenSimulator from source code on multiple platforms.  Please help us keep this page up to date as the project progresses. If you just want to run OpenSimulator, [[Download]] and [[Configuration|run]] the binary build instead. In the most cases, you should be fine with binaries.
+
Diese Seite behandelt den Bau des OpenSimulators aus dem Quellcode für verschiedene Plattformen.  
  
= Obtaining the Source Code =
+
Bitte helfen Sie uns dabei, diese Seite auf dem neuesten Stand zu halten, während das Projekt fortschreitet.
  
Check out the [[Download]] page for instructions on obtaining an OpenSimulator source release.  If you want the current development code (i.e. the Git master branch) see [[Developer_Documentation#Source_Code_Repository_Access]].
+
Wenn Sie nur den OpenSimulator ausführen möchten, laden Sie stattdessen die binäre Version herunter und führen Sie diese aus.  
  
= Building =
+
In den meisten Fällen sollten die Binärdateien ausreichend sein.
  
 +
= Bezug des Quellcodes =
  
Although this page is long, building is generally quite simple.  See the BUILDING.txt file in the distribution itself for simplified instructions.
+
Schauen Sie auf der [[Download]]-Seite nach Anweisungen zum Bezug einer OpenSimulator-Quellcodeversion.  
  
== Requirements ==
+
Wenn Sie den aktuellen Entwicklungscode möchten (d.h. den Git-Master-Branch), siehe [[Developer_Documentation#Source_Code_Repository_Access]].
  
OpenSimulator 0.9.0.x requires either
+
= Erstellung =
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.0] on Windows
+
* [https://www.mono-project.com/download/stable/ Mono] on Linux or Mac.  Mono 2.10.8 is the minimum version.
+
You may also need nant tool.
+
  
 +
Obwohl diese Seite lang ist, ist das Erstellen im Allgemeinen recht einfach. Sehen Sie die BUILDING.txt-Datei in der Distribution selbst für vereinfachte Anweisungen.
  
OpenSimulator 0.9.1 requires either
+
== Version 0.9.3.0 und höher ==
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.6] on Windows
+
Microsoft hat die Entwicklung von .Net Framework und Mono eingestellt und durch das neue dotnet ersetzt. Dies ist eine bedeutende Änderung, der wir ab Version 0.9.3.0 folgen.
* [https://www.mono-project.com/download/stable/ Mono] on Linux or Mac. Mono 5.12 is the minimum recommended version.
+
  
 +
=== Bezug des Quellcodes ===
  
Other platforms may have own mono distributions, or may need to compile mono on them.
+
Holen oder aktualisieren Sie den Quellcode von Git.
  
 +
git clone git://opensimulator.org/git/opensim
  
Other libraries used by OpenSimulator can be found at our opensim-libs git repo.
+
=== Erstellung unter Windows ===
 +
Um unter Windows zu erstellen, sind folgende Schritte erforderlich:
 +
 
 +
    [https://dotnet.microsoft.com/en-us/download/dotnet/8.0 dotnet 8.0 SDK]
 +
 
 +
optional auch
 +
 
 +
    Visual Studio .NET, Version 2022 oder höher
 +
 
 +
Erstellen Sie die Projektdateien, indem Sie Folgendes ausführen:
 +
 
 +
  runprebuild.bat
 +
 
 +
Laden Sie die generierte OpenSim.sln in Visual Studio und erstellen Sie die Lösung, oder führen Sie einfach aus:
 +
compile.bat
 +
 
 +
Für die Ausführung benötigen Sie möglicherweise auch:
 +
 
 +
* die [https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 Laufzeitdateien für vc++] installieren
 +
* die Installation eines älteren .NetFramework 3.5 autorisieren
 +
 
 +
Konfigurieren Sie diesbezüglich. Siehe [[Configuration]].
 +
 
 +
Führen Sie nun einfach OpenSim.exe aus dem bin-Ordner aus und richten Sie die Region ein.
 +
 
 +
=== Erstellung unter Linux / Mac ===
 +
 
 +
Sie benötigen:
 +
 
 +
    [https://dotnet.microsoft.com/en-us/download/dotnet/8.0 dotnet 8.0 SDK]
 +
* libgdiplus
 +
** Wenn Sie bereits Mono 6.x komplett installiert haben, haben Sie bereits libgdiplus, andernfalls müssen Sie es mit einem Paketmanager für Ihr Betriebssystem installieren, z. B. apt, brew, macports usw. Zum Beispiel unter Debian:
 +
*** apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev
 +
 
 +
Erstellen Sie die Projektdateien, indem Sie Folgendes ausführen:
 +
 
 +
  ./runprebuild.sh
 +
 
 +
führen Sie dann aus:
 +
 
 +
  dotnet build --configuration Release OpenSim.sln
 +
 
 +
oder einfach:
 +
 
 +
  ./compile.sh
 +
 
 +
Konfigurieren Sie diesbezüglich. Siehe [[Configuration]].
 +
 
 +
Führen Sie ./opensim.sh aus dem bin-Ordner aus und richten Sie die Region ein
 +
 
 +
== Ältere Versionen ==
 +
  Der Quellcode für alte .Net Framework 4.x und Mono befindet sich im Branch Mono-Net4X.
 +
  Dies ist größtenteils derselbe Code wie bei der Veröffentlichung von 0.9.2.2.
 +
 
 +
== Anforderungen ==
 +
 
 +
OpenSimulator 0.9.0.x erfordert entweder
 +
 
 +
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.0] unter Windows
 +
* [https://www.mono-project.com/download/stable/ Mono] unter Linux oder Mac. Mono 2.10.8 ist die Mindestversion.
 +
    Sie benötigen möglicherweise auch das nant-Tool.
 +
 
 +
OpenSimulator >= 0.9.1 (einschließlich des aktuellen Master) erfordert
 +
 
 +
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.6] unter Windows
 +
* [https://www.mono-project.com/download/stable/ Mono] unter Linux oder Mac. Mono 5.12 ist die empfohlene Mindestversion.<br>'''Hinweis:''' Verwenden Sie nicht die Mono-Pakete Ihrer Linux-Distribution, da möglicherweise erforderliche Komponenten fehlen. Bitte [https://www.mono-project.com/download/stable/ installieren Sie sie aus dem offiziellen Mono-Repo Ihrer Distribution].
 +
    Es wird empfohlen, mit msbuild zu kompilieren.
 +
 
 +
Andere Plattformen haben möglicherweise eigene Mono-Distributionen, oder Sie müssen Mono darauf kompilieren.
 +
 
 +
Andere von OpenSimulator verwendete Bibliotheken finden Sie in unserem opensim-libs-Git-Repository:
  
 
git clone git://opensimulator.org/git/opensim-libs
 
git clone git://opensimulator.org/git/opensim-libs
  
You may need to compile them for your platform, in particular the unmanaged ones like Bullet or ODE native code libraries
+
Verwendetes libOpenMetaVerse finden Sie unter https://bitbucket.org/opensimulator/
 +
 
 +
Möglicherweise müssen Sie sie für Ihre Plattform kompilieren, insbesondere die nicht verwalteten wie Bullet oder ODE-Native-Code-Bibliotheken
  
 
== MS Windows ==
 
== MS Windows ==
  
=== Supported Compilers ===
+
=== Unterstützte Compiler ===
 +
 
 
* [https://visualstudio.microsoft.com/downloads/ Visual Studio Community 2017]
 
* [https://visualstudio.microsoft.com/downloads/ Visual Studio Community 2017]
* Or any version that does support the .Net version. VS2010 can be used for OpenSimulator versions prior to 0.9.1, for example.
+
* Oder jede Version, die die entsprechende .Net-Version unterstützt. Mindestens VS2010 für Versionen vor 0.91, VS2015 für 0.91 und später.
 +
* OpenSimulator >=0.9.2.0 kann für .Net Framework 4.8 kompilieren, indem runprebuild48.bat anstelle von runprebuild.bat unten verwendet wird und mit VS2017/19/22
  
=== Compiling in an IDE ===
+
=== Kompilierung in einer IDE ===
# Run "runprebuild.bat"
+
* Führen Sie "runprebuild.bat" aus.
# Open the resulting "OpenSim.sln" in Visual Studio IDE.
+
* Öffnen Sie die resultierende "OpenSim.sln" in der Visual Studio IDE.
# Select Debug or Release configuration
+
* Wählen Sie Debug- oder Release-Konfiguration
# Menu Build -> Build Solution.
+
* Menü Build -> Build Solution.
  
===Compiling at the Command Prompt ===
+
=== Kompilierung an der Eingabeaufforderung ===
# Run "runprebuild.bat".
+
* Führen Sie "runprebuild.bat" aus.
# Run the resulting "compile.bat" file.
+
* Führen Sie die resultierende Datei "compile.bat" aus.
  
== Linux and Other Mono Platforms ==
+
== Linux und andere Mono-Plattformen ==
  
=== Prepare to compile ===
+
=== Vorbereitung für die Kompilierung ===
To create the several project files run on the folder opensim:
+
Um die verschiedenen Projektdateien zu erstellen, führen Sie im Ordner opensim aus:
  
  ./runprebuild.sh
+
  ./runprebuild.sh
  
==== Compile with Nant ====
+
==== Kompilieren mit Nant ====
On some mono versions, in particular old ones may need the use of nant to proper compile OpenSimulator, in that case just run:
+
Auf einigen Mono-Versionen, insbesondere auf alten, kann es erforderlich sein, nant zum ordnungsgemäßen Kompilieren von OpenSimulator zu verwenden. Führen Sie in diesem Fall einfach aus:
  
  nant
+
  nant
  
==== Compile with xbuild ====
+
==== Kompilieren mit xbuild ====
  
On mono versions you can just use xbuild.
+
Auf Mono-Versionen können Sie einfach xbuild verwenden. ''(msbuild wird ab 0.9.1.0.0 empfohlen)''
  
  xbuild
+
  xbuild
  
xbuild is no longer recommended on mono 5.x, but currently still works (5.12)
+
xbuild wird auf Mono 5.x nicht mehr empfohlen, funktioniert jedoch derzeit noch (5.12)
  
 +
''>>>> xbuild-Tool ist veraltet und wird in zukünftigen Updates entfernt, verwenden Sie stattdessen msbuild <<<<''
  
on more recent monos Release configuration may give some performance gain, but you do lose some debug capabilities.
+
Auf neueren Mono-Versionen kann die Release-Konfiguration einige Leistungsvorteile bringen, aber Sie verlieren einige Debug-Fähigkeiten.
to compile Release configuration:
+
zum Kompilieren der Release-Konfiguration:
  xbuild /p:Configuration=Release
+
  xbuild /p:Configuration=Release
  
==== Compile with msbuild ====
+
==== Kompilieren mit msbuild ====
For Opensim 0.9.1 you can still use xbuild but Mono recommends the use of msbuild. You might need to install the package msbuild in addition to mono-complete for that.
+
Für Opensim 0.9.1 können Sie immer noch xbuild verwenden, aber Mono empfiehlt die Verwendung von msbuild. Sie müssen möglicherweise das Paket msbuild zusätzlich zu mono-complete installieren. (Aktuell ist msbuild in mono-complete enthalten, auf Ubuntu, aus den offiziellen Mono-Repositories. https://www.mono-project.com/download/stable/#download-lin )
  
Use xbuild on the other cases.
+
Verwenden Sie xbuild in den anderen Fällen als letztes Mittel.
  
Recent improvements, specially on JIT runtime, justify compiling in Release configuration, but you do lose some debug capabilities.
+
Neuere Verbesserungen, insbesondere am JIT-Laufzeitmodus, rechtfertigen das Kompilieren in der Release-Konfiguration, aber Sie verlieren einige Debug-Fähigkeiten.
  
to compile with Debug configuration:
+
für die Kompilierung mit Debug-Konfiguration:
 
   msbuild
 
   msbuild
  
to compile with Release configuration:
+
für die Kompilierung mit Release-Konfiguration:
 
   msbuild /p:Configuration=Release
 
   msbuild /p:Configuration=Release
  
= Configuration =
+
für die Kompilierung mit der Debug-Konfiguration und der detaillierten opensim.log-Datei, die dann mit einem Texteditor gelesen werden kann:
 +
  msbuild /p:Configuration=Debug /fileLogger /flp:logfile=opensim.log /v:d
  
See [[Configuration]].
+
Sie können die folgenden Werte für die Detailstufe der opensim.log-Datei angeben:
 +
  q [leise], m [minimal], n [normal], d [detailliert] und diag [diagnostisch].
 +
 
 +
Um für .Net Framework 4.8 mit Mono >=6.12 zu kompilieren, können Sie runprebuild48.sh anstelle von runprebuild.sh oben ausführen. Dabei wird nicht viel gewonnen.
 +
 
 +
== Ahead-of-Time-Kompilierung (AOT)==
 +
Wie Sie alle wissen, enthalten die durch den Kompilierungsprozess oben erstellten Dateien *.exe und .dll keinen nativen Code für die Maschine.<br>
 +
Mit diesen Dateien wird der native Code, den die CPU benötigt, bei Bedarf zur Laufzeit erstellt, in einem Prozess, der als Just-in-Time (JIT) bekannt ist.<br>
 +
Es ist möglich, einen weiteren Kompilierungsschritt für diese Dateien durchzuführen, um nativen Code zu erstellen, der bereit ist, wenn das Programm startet. Dies ist der AOT-Prozess (Ahead of time).<br>
 +
Da JIT zur Laufzeit durchgeführt wird, hat es nur begrenzte Zeit für umfangreiche Codeoptimierungen. AOT kann andererseits alles tun.<br>
 +
AOT sollte auf diese Weise schneller geladen werden, etwas den Speicherbedarf der JIT-Arbeit sparen und die Latenz durch Codegenerierung verringern, wenn ein neuer Codeabschnitt benötigt wird.<br>
 +
Auf diese Weise hilft AOT, die enorme Leistungslücke zwischen C# und einer geeigneteren Sprache wie C++ zu verringern, auch wenn JIT einige Optimierungen abhängig vom aktuellen Codeausführungszustand durchführen kann, die AOT nicht kann. (Wenn Sie denken, dass C# genauso schnell ist wie kompetenter C++-Code, sollten Sie besser ändern, was Sie rauchen...)<br>
 +
Tatsächlich führen sowohl .NET als auch Mono AOT bei ihren Komponenten während der Installation durch.<br>
 +
JIT wird weiterhin aktiv sein und einige andere Codes zur Laufzeit kompilieren. OpenSim und verwendete .NET/Mono-Frameworkteile sind darauf angewiesen.<br>
 +
 
 +
Für Linux enthält 0.9.2.0 jetzt Skripte makeaot.sh und cleanaot.sh, um AOT-Tests zu erleichtern.<br>
 +
Führen Sie makeaot.sh nach dem oben genannten Kompilierungsschritt aus, um die nativen Code-Dateien zu generieren. Die Option -O=all muss zu mono hinzugefügt werden, wenn opensim.exe ausgeführt wird, z.B.:<br>
 +
  mono --desktop -O=all OpenSim.exe
 +
Das Skript cleanaot.sh entfernt die von AOT verwendeten Binärdateien. Sie müssen es ausführen, wenn Sie den Code neu kompilieren (um sicher zu sein, auch wenn Sie makeaot ausführen).<br>
 +
<b>VERGESSEN SIE NICHT, makeaot.sh oder cleanaot.sh nach dem Neukompilieren auszuführen!</b><br>
 +
Die generierten Dateien sind spezifisch für diese Maschine. <b>Kopieren Sie die nativen Code-Dateien nicht auf andere Maschinen, es sei denn, sie sind absolut identisch</b><br>
 +
Die Original-.exe- und .dll-Dateien sind weiterhin erforderlich.<br>
 +
 
 +
AOT ist auch unter Windows möglich, jedoch mit anderen Tools, die Dinge zum zentralen Repository auf der Maschine hinzufügen, schwerer zu isolieren und zu pflegen. siehe [https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator ngen]<br>
 +
 
 +
Macs sind.. Macs.. Zukünftige Modelle können JIT vollständig verbieten, wie es bei Apple-Mobilprodukten der Fall ist. Mono AOT auf aktuellen Macs funktioniert möglicherweise wie auf Linux<br>
 +
 
 +
In der praktischen Anwendung erwarten Sie nicht viel mehr als etwas schnellere Ladezeiten.<br>
 +
Da die Kompilierung jedoch unterschiedlich ist, können neue Probleme auftreten. Testen Sie also sorgfältig.<br>
 +
OpenSim-Leistungsprobleme sind größtenteils auf den eigenen Code zurückzuführen, schrecklich schlechte Kommunikationsprotokolle, Verwendung von schlechtem .NET/Mono-Framework-Code (in einigen Fällen Demo-Qualität), usw.<br>
 +
Und natürlich immer kaputte GC<br>
 +
Aber... nun ja, jede ns zählt..<br>
 +
 
 +
= Konfiguration =
 +
 
 +
Siehe [[Configuration]].
  
 
[[Category:Users]]
 
[[Category:Users]]
 
[[Category:Users]]
 
[[Category:Users]]
 
[[Category:Getting Started]]
 
[[Category:Getting Started]]
 +
 +
[[Category:German Translations]]

Latest revision as of 01:00, 23 April 2024

Diese Seite behandelt den Bau des OpenSimulators aus dem Quellcode für verschiedene Plattformen.

Bitte helfen Sie uns dabei, diese Seite auf dem neuesten Stand zu halten, während das Projekt fortschreitet.

Wenn Sie nur den OpenSimulator ausführen möchten, laden Sie stattdessen die binäre Version herunter und führen Sie diese aus.

In den meisten Fällen sollten die Binärdateien ausreichend sein.

Contents

[edit] Bezug des Quellcodes

Schauen Sie auf der Download-Seite nach Anweisungen zum Bezug einer OpenSimulator-Quellcodeversion.

Wenn Sie den aktuellen Entwicklungscode möchten (d.h. den Git-Master-Branch), siehe Developer_Documentation#Source_Code_Repository_Access.

[edit] Erstellung

Obwohl diese Seite lang ist, ist das Erstellen im Allgemeinen recht einfach. Sehen Sie die BUILDING.txt-Datei in der Distribution selbst für vereinfachte Anweisungen.

[edit] Version 0.9.3.0 und höher

Microsoft hat die Entwicklung von .Net Framework und Mono eingestellt und durch das neue dotnet ersetzt. Dies ist eine bedeutende Änderung, der wir ab Version 0.9.3.0 folgen.

[edit] Bezug des Quellcodes

Holen oder aktualisieren Sie den Quellcode von Git.

git clone git://opensimulator.org/git/opensim

[edit] Erstellung unter Windows

Um unter Windows zu erstellen, sind folgende Schritte erforderlich:

   dotnet 8.0 SDK

optional auch

   Visual Studio .NET, Version 2022 oder höher

Erstellen Sie die Projektdateien, indem Sie Folgendes ausführen:

  runprebuild.bat

Laden Sie die generierte OpenSim.sln in Visual Studio und erstellen Sie die Lösung, oder führen Sie einfach aus: compile.bat

Für die Ausführung benötigen Sie möglicherweise auch:

Konfigurieren Sie diesbezüglich. Siehe Configuration.

Führen Sie nun einfach OpenSim.exe aus dem bin-Ordner aus und richten Sie die Region ein.

[edit] Erstellung unter Linux / Mac

Sie benötigen:

   dotnet 8.0 SDK
  • libgdiplus
    • Wenn Sie bereits Mono 6.x komplett installiert haben, haben Sie bereits libgdiplus, andernfalls müssen Sie es mit einem Paketmanager für Ihr Betriebssystem installieren, z. B. apt, brew, macports usw. Zum Beispiel unter Debian:
      • apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

Erstellen Sie die Projektdateien, indem Sie Folgendes ausführen:

  ./runprebuild.sh

führen Sie dann aus:

  dotnet build --configuration Release OpenSim.sln

oder einfach:

  ./compile.sh

Konfigurieren Sie diesbezüglich. Siehe Configuration.

Führen Sie ./opensim.sh aus dem bin-Ordner aus und richten Sie die Region ein

[edit] Ältere Versionen

  Der Quellcode für alte .Net Framework 4.x und Mono befindet sich im Branch Mono-Net4X. 
  Dies ist größtenteils derselbe Code wie bei der Veröffentlichung von 0.9.2.2.

[edit] Anforderungen

OpenSimulator 0.9.0.x erfordert entweder

   Sie benötigen möglicherweise auch das nant-Tool.

OpenSimulator >= 0.9.1 (einschließlich des aktuellen Master) erfordert

   Es wird empfohlen, mit msbuild zu kompilieren.

Andere Plattformen haben möglicherweise eigene Mono-Distributionen, oder Sie müssen Mono darauf kompilieren.

Andere von OpenSimulator verwendete Bibliotheken finden Sie in unserem opensim-libs-Git-Repository:

git clone git://opensimulator.org/git/opensim-libs

Verwendetes libOpenMetaVerse finden Sie unter https://bitbucket.org/opensimulator/

Möglicherweise müssen Sie sie für Ihre Plattform kompilieren, insbesondere die nicht verwalteten wie Bullet oder ODE-Native-Code-Bibliotheken

[edit] MS Windows

[edit] Unterstützte Compiler

  • Visual Studio Community 2017
  • Oder jede Version, die die entsprechende .Net-Version unterstützt. Mindestens VS2010 für Versionen vor 0.91, VS2015 für 0.91 und später.
  • OpenSimulator >=0.9.2.0 kann für .Net Framework 4.8 kompilieren, indem runprebuild48.bat anstelle von runprebuild.bat unten verwendet wird und mit VS2017/19/22

[edit] Kompilierung in einer IDE

  • Führen Sie "runprebuild.bat" aus.
  • Öffnen Sie die resultierende "OpenSim.sln" in der Visual Studio IDE.
  • Wählen Sie Debug- oder Release-Konfiguration
  • Menü Build -> Build Solution.

[edit] Kompilierung an der Eingabeaufforderung

  • Führen Sie "runprebuild.bat" aus.
  • Führen Sie die resultierende Datei "compile.bat" aus.

[edit] Linux und andere Mono-Plattformen

[edit] Vorbereitung für die Kompilierung

Um die verschiedenen Projektdateien zu erstellen, führen Sie im Ordner opensim aus:

  ./runprebuild.sh

[edit] Kompilieren mit Nant

Auf einigen Mono-Versionen, insbesondere auf alten, kann es erforderlich sein, nant zum ordnungsgemäßen Kompilieren von OpenSimulator zu verwenden. Führen Sie in diesem Fall einfach aus:

  nant

[edit] Kompilieren mit xbuild

Auf Mono-Versionen können Sie einfach xbuild verwenden. (msbuild wird ab 0.9.1.0.0 empfohlen)

  xbuild

xbuild wird auf Mono 5.x nicht mehr empfohlen, funktioniert jedoch derzeit noch (5.12)

>>>> xbuild-Tool ist veraltet und wird in zukünftigen Updates entfernt, verwenden Sie stattdessen msbuild <<<<

Auf neueren Mono-Versionen kann die Release-Konfiguration einige Leistungsvorteile bringen, aber Sie verlieren einige Debug-Fähigkeiten. zum Kompilieren der Release-Konfiguration:

  xbuild /p:Configuration=Release

[edit] Kompilieren mit msbuild

Für Opensim 0.9.1 können Sie immer noch xbuild verwenden, aber Mono empfiehlt die Verwendung von msbuild. Sie müssen möglicherweise das Paket msbuild zusätzlich zu mono-complete installieren. (Aktuell ist msbuild in mono-complete enthalten, auf Ubuntu, aus den offiziellen Mono-Repositories. https://www.mono-project.com/download/stable/#download-lin )

Verwenden Sie xbuild in den anderen Fällen als letztes Mittel.

Neuere Verbesserungen, insbesondere am JIT-Laufzeitmodus, rechtfertigen das Kompilieren in der Release-Konfiguration, aber Sie verlieren einige Debug-Fähigkeiten.

für die Kompilierung mit Debug-Konfiguration:

  msbuild

für die Kompilierung mit Release-Konfiguration:

  msbuild /p:Configuration=Release

für die Kompilierung mit der Debug-Konfiguration und der detaillierten opensim.log-Datei, die dann mit einem Texteditor gelesen werden kann:

  msbuild /p:Configuration=Debug /fileLogger /flp:logfile=opensim.log /v:d

Sie können die folgenden Werte für die Detailstufe der opensim.log-Datei angeben:

  q [leise], m [minimal], n [normal], d [detailliert] und diag [diagnostisch].

Um für .Net Framework 4.8 mit Mono >=6.12 zu kompilieren, können Sie runprebuild48.sh anstelle von runprebuild.sh oben ausführen. Dabei wird nicht viel gewonnen.

[edit] Ahead-of-Time-Kompilierung (AOT)

Wie Sie alle wissen, enthalten die durch den Kompilierungsprozess oben erstellten Dateien *.exe und .dll keinen nativen Code für die Maschine.
Mit diesen Dateien wird der native Code, den die CPU benötigt, bei Bedarf zur Laufzeit erstellt, in einem Prozess, der als Just-in-Time (JIT) bekannt ist.
Es ist möglich, einen weiteren Kompilierungsschritt für diese Dateien durchzuführen, um nativen Code zu erstellen, der bereit ist, wenn das Programm startet. Dies ist der AOT-Prozess (Ahead of time).
Da JIT zur Laufzeit durchgeführt wird, hat es nur begrenzte Zeit für umfangreiche Codeoptimierungen. AOT kann andererseits alles tun.
AOT sollte auf diese Weise schneller geladen werden, etwas den Speicherbedarf der JIT-Arbeit sparen und die Latenz durch Codegenerierung verringern, wenn ein neuer Codeabschnitt benötigt wird.
Auf diese Weise hilft AOT, die enorme Leistungslücke zwischen C# und einer geeigneteren Sprache wie C++ zu verringern, auch wenn JIT einige Optimierungen abhängig vom aktuellen Codeausführungszustand durchführen kann, die AOT nicht kann. (Wenn Sie denken, dass C# genauso schnell ist wie kompetenter C++-Code, sollten Sie besser ändern, was Sie rauchen...)
Tatsächlich führen sowohl .NET als auch Mono AOT bei ihren Komponenten während der Installation durch.
JIT wird weiterhin aktiv sein und einige andere Codes zur Laufzeit kompilieren. OpenSim und verwendete .NET/Mono-Frameworkteile sind darauf angewiesen.

Für Linux enthält 0.9.2.0 jetzt Skripte makeaot.sh und cleanaot.sh, um AOT-Tests zu erleichtern.
Führen Sie makeaot.sh nach dem oben genannten Kompilierungsschritt aus, um die nativen Code-Dateien zu generieren. Die Option -O=all muss zu mono hinzugefügt werden, wenn opensim.exe ausgeführt wird, z.B.:

  mono --desktop -O=all OpenSim.exe

Das Skript cleanaot.sh entfernt die von AOT verwendeten Binärdateien. Sie müssen es ausführen, wenn Sie den Code neu kompilieren (um sicher zu sein, auch wenn Sie makeaot ausführen).
VERGESSEN SIE NICHT, makeaot.sh oder cleanaot.sh nach dem Neukompilieren auszuführen!
Die generierten Dateien sind spezifisch für diese Maschine. Kopieren Sie die nativen Code-Dateien nicht auf andere Maschinen, es sei denn, sie sind absolut identisch
Die Original-.exe- und .dll-Dateien sind weiterhin erforderlich.

AOT ist auch unter Windows möglich, jedoch mit anderen Tools, die Dinge zum zentralen Repository auf der Maschine hinzufügen, schwerer zu isolieren und zu pflegen. siehe ngen

Macs sind.. Macs.. Zukünftige Modelle können JIT vollständig verbieten, wie es bei Apple-Mobilprodukten der Fall ist. Mono AOT auf aktuellen Macs funktioniert möglicherweise wie auf Linux

In der praktischen Anwendung erwarten Sie nicht viel mehr als etwas schnellere Ladezeiten.
Da die Kompilierung jedoch unterschiedlich ist, können neue Probleme auftreten. Testen Sie also sorgfältig.
OpenSim-Leistungsprobleme sind größtenteils auf den eigenen Code zurückzuführen, schrecklich schlechte Kommunikationsprotokolle, Verwendung von schlechtem .NET/Mono-Framework-Code (in einigen Fällen Demo-Qualität), usw.
Und natürlich immer kaputte GC
Aber... nun ja, jede ns zählt..

[edit] Konfiguration

Siehe Configuration.

Personal tools
General
About This Wiki