Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
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");
                }
            }
        }
Esempio n. 4
0
        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();
        }