Beh, ho notato un bug strano. Questo si verifica durante il ridimensionamento.Awesomium.NET Crashing on Resize - Memory Leak
Ho notato per la prima volta mentre stavo cercando di correggere i miei allineamenti xaml. Quando provo a ridimensionare la finestra attraverso i miei 2 schermi, il contenuto di awesomium inizia a tremolare e improvvisamente il contenuto scompare e la schermata rossa con il logo si avvicina, poco dopo l'arresto di vshost32.exe .
Ho pensato bene .. ok, potrebbe avere alcuni limiti di larghezza, quindi ho limitato la larghezza massima della finestra sulla larghezza della schermata principale. Ho notato alcuni bagliori aswell mentre stavo cercando di ridimensionare orizzontalmente, ma che era tutto, però quando ho spammato il ridimensionamento e cambiato molte volte altezza e la larghezza lo stesso problema si è verificato su maxheight 1080 e larghezza massima 1920.
Edit2 Ulteriori informazioni: ho 2 WebControls sullo stesso XAML. Quando ho aggiunto più e ridimensionato ... si è schiantato il primo secondo.
Edit (1)
[1123/013232:INFO:(0)] WebCore is now online.
[1123/013232:INFO:(0)] Running Awesomium 1.7.5.1
[1123/013247:WARNING:Awesomium.NET(0)] System.OutOfMemoryException: Insufficient memory to continue the execution of the program.
at System.Windows.Media.Imaging.WriteableBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat, BitmapPalette palette)
at Awesomium.Windows.Controls.WebViewPresenter.Awesomium.Core.ISurface.Initialize(IWebView view, Int32 width, Int32 height)
at Awesomium.Core.Surface.oQVs2ZKQlyYpFHm4aaM(Object , Object , Int32 width, Int32 height)
at Awesomium.Core.Surface.InitializeDirector(IWebView view, Int32 width, Int32 height)
at Awesomium.Core.Surface..ctor(IWebView view, Int32 width, Int32 height, ISurface surfaceImpl)
at Awesomium.Core.SurfaceFactory.Nu5RdsobJP(IntPtr , Int32 , Int32 )
at Awesomium.Core.NativeMethods.WebCore_Update(HandleRef jarg1)
at Awesomium.Core.WebCore.UpdateThunk()
[1123/013247:ERROR:ipc_channel_win.cc(261)] pipe error: 109
Mi sembra che ci sia una certa perdita meory qui.
Dopo 2 GB di RAM sprecato, si blocca.
Provato con 8,5 GB di RAM utilizzato, andato fino a 10,5 e poi si è schiantato.
Ho effettuato alcuni test per scoprire cosa causa questo errore. Ho creato un ciclo che sarebbe ridimensionare la finestra 2 larghezze e altezze ogni 50 ms
public async void testc() {
for (int i = 0; i <= 1000; i++)
{
this.Width = 1700 + i % 2;
this.Height = 950 + i % 2;
await Task.Delay(50);
}
}
è caduto di nuovo come previsto, interessante è però che quando allegate il cappio
WebControl.Reload(true);
in realtà non si è arrestato in modo anomalo ... La memoria andava su e giù da 350 MB
Esiste comunque un modo per impedire il rendering durante il ridimensionamento?
Sembra un bug in Awesomium. Vorrei creare un esempio molto minimale che ripro il problema e inviarlo al loro bug tracker. –
Sembra che Awesomium sia stato abbandonato per circa un anno. – Devian
La community su http://answers.awesomium.com/ sembra vibrare. Proverei a postare lì. Sembra una versione precedente del motore Stack Overflow. –