public void outOfMemoryTest() { const int quante = 1000; string nomeImg = Costanti.getNomeImmagineRandom(); GestoreImmagineSrvImpl impl = (GestoreImmagineSrvImpl)(LumenApplication.Instance.getServizioAvviato <IGestoreImmagineSrv>()); BitmapSource bmp2 = new BitmapImage(new Uri(nomeImg)); IImmagine immagine = new ImmagineWic(bmp2); // Ricavo la memoria libera prima del test GC.Collect(); long memoryPrima = Process.GetCurrentProcess().WorkingSet64; for (int ii = 0; ii < quante; ii++) { string tmpFile = System.IO.Path.GetTempFileName(); if (1 == 1) { impl.save(immagine, tmpFile); } #if FALSO if (1 == 0) { // cosi funziona impl.save2(bmp2, tmpFile); } else { #endif using (FileStream fileStream = new FileStream(tmpFile, FileMode.Create)) { JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(((ImmagineWic)immagine).bitmapSource)); encoder.Save(fileStream); fileStream.Close(); } #if FALSO } #endif System.IO.File.Delete(tmpFile); long memoryDurante = Process.GetCurrentProcess().WorkingSet64; long diffDurante = (memoryDurante - memoryPrima); if ((ii % 10) == 0) { Console.WriteLine("consumo = " + (diffDurante / 1024)); } // Se supero il massimo impostato, probabilmente il gc non sta pulendo. if (diffDurante > maxMem) { Assert.Fail("Probabilmente si sta consumando troppa memoria: diff(MB)=" + diffDurante / 1024); } } immagine.Dispose(); }
public void modificaConProgrammaEsterno() { // Carico una foto a caso using (LumenEntities entities = new LumenEntities()) { Fotografia[] fotos = new Fotografia[2]; fotos[0] = Costanti.findUnaFotografiaRandom(entities); fotos[1] = Costanti.findUnaFotografiaRandom(entities); Fotografia [] modificate = _impl.modificaConProgrammaEsterno(fotos.ToArray()); Assert.IsTrue(modificate.Length > 0); } }
public void outOfMemorySimpleTest() { string nomeImg = Costanti.getNomeImmagineRandom(); BitmapSource bmp = new BitmapImage(new Uri(nomeImg)); long memoryBefore = Process.GetCurrentProcess().WorkingSet64; for (int ii = 0; ii < 500; ii++) { saveBitmapToFile(bmp); long memoryAfter = Process.GetCurrentProcess().WorkingSet64; long consumption = (memoryAfter - memoryBefore); // Check memory low if (consumption > (800 * 1000 * 1000)) { Assert.Fail("Memory low. Consuption=" + (consumption / 1024) + "MB"); } } }
public void carrelloTest() { using (LumenEntities dbContext = new LumenEntities()) { Carrello c1 = new Carrello(); c1.id = Guid.NewGuid(); c1.giornata = DateTime.Today; c1.tempo = DateTime.Now; c1.totaleAPagare = 123m; c1.righeCarrello = new EntityCollection <RigaCarrello>(); _carrelloInserito = c1; // --- RigaCarrello r1 = new RigaCarrello(); r1.fotografia = Costanti.findUnaFotografiaRandom(dbContext); r1.fotografo = r1.fotografia.fotografo; r1.discriminator = RigaCarrello.TIPORIGA_MASTERIZZATA; r1.id = Guid.NewGuid(); r1.prezzoLordoUnitario = new Decimal(20); r1.quantita = 2; r1.prezzoNettoTotale = Decimal.Multiply(r1.prezzoLordoUnitario, r1.quantita); r1.descrizione = "Foto masterizzata"; c1.righeCarrello.Add(r1); _contaMasterizzate++; // --- RigaCarrello r2 = new RigaCarrello(); r2.fotografia = Costanti.findUnaFotografiaRandom(dbContext); r2.discriminator = RigaCarrello.TIPORIGA_STAMPA; r2.id = Guid.NewGuid(); r2.prezzoLordoUnitario = new Decimal(5); r2.quantita = 3; r2.prezzoNettoTotale = Decimal.Multiply(r2.prezzoLordoUnitario, r2.quantita); r2.descrizione = "RicaFotoStampata1"; r2.totFogliStampati = 3; r2.prodotto = Utilita.ottieniFormatoCarta(dbContext, "A4"); r2.fotografo = Utilita.ottieniFotografoMario(dbContext); c1.righeCarrello.Add(r2); _contaStampate++; // --- RigaCarrello r3 = new RigaCarrello(); r3.fotografia = Costanti.findUnaFotografiaRandom(dbContext); r3.discriminator = RigaCarrello.TIPORIGA_STAMPA; r3.id = Guid.NewGuid(); r3.prezzoLordoUnitario = new Decimal(5); r3.quantita = 2; r3.prezzoNettoTotale = Decimal.Multiply(r3.prezzoLordoUnitario, r3.quantita); r3.descrizione = "RicaFotoStampata1"; r3.totFogliStampati = 3; r3.prodotto = Utilita.ottieniFormatoCarta(dbContext, "A4"); r3.fotografo = Utilita.ottieniFotografoMario(dbContext); c1.righeCarrello.Add(r3); _contaStampate++; // --- dbContext.Carrelli.Add(c1); try { dbContext.SaveChanges(); } catch (Exception ee) { String msg = ErroriUtil.estraiMessage(ee); Console.WriteLine(msg); throw ee; } } // Verifico che l'inserimento appena effettuato sia andato bene. queryPolimorficaCorrente(); // provo altre tecniche di query, giusto per sport. queryPolimorficaSql(); queryPolimorfica(); }