2016-03-28 22 views
1

C# ve RDotNet (1.6.5) kullanıyorum. Ki kare (karelerle çalışma), korelasyon ve regresyon (parseller) gibi bazı istatistikleri hesaplıyorum. Uygulamamda bazı R grafikleri almak istiyorum. Disk çıktılarını disketteki bir PNG dosyasına koydum ve sonra onu aldım ve std ile okuyorum. IO. Her şey oldukça iyi çalışıyor, ancak bazen - Tam olarak ne zaman söyleyemiyorum - RDotNet, kötü memelilere erişim hakkında bir şeyler söyleyerek çöküyor.RDotNet bellek hataları

Bu şöyle olabilir: RDotNet error 1

Ya da böyle

:

RDotNetError 2

en yaygın mesajdır:

Not CreateDataFrame can olduğunu tek p değil Hatanın göründüğü dantel. Burada bir kez göründüğünde, bir kez lm fonksiyonunu çağırırken, bir kez farklı bir formül değerlendirirken.

Şu anki test senaryosu (basitçe söylenmiştir): A, B, A, B, A, A, hesaplama başarısız. Henüz doğru bir şekilde değerlendirilmiş bir şey yaparken çöküş demek istiyorum.

Lütfen herhangi bir geçici çözüm sağlayabilir misiniz? Bunun en kötü yanı RDotNet'in tekil olmasıdır. Sadece hatayı yakalamak, REngine imha etmek ve yeni bir tane oluşturmak mümkün değildir. Gelecekteki Google'cuların için

cevap

1

:

Biraz araştırma sonra hatalar farklı ipliklerden R ortamına erişen kaynaklanır fikrine geldi. Aynı zamanda değil, yine de farklı iş parçacıklarından (benim durumumda istemcilerin isteklerini işleme).

Çözümüm, ortam için ayrı bir tek parçacığı oluşturuyor ve bir cepheyi kullanarak ona erişimi eşitliyor. Bu "hack" uygulamasından sonra başka hatalar oluşmaz.