Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/12/16 13:30:41 (8 years ago)
Author:
gkronber
Message:

bugfixing (memory leaks)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/thasling/DistributedGA/DistributedGA.Hive/P2PMigrationAnalyzer.cs

    r14252 r14253  
    2828using DistributedGA.Core.Implementation;
    2929using DistributedGA.Core.Interface;
     30using DistributedGA.Core.Util;
    3031using DistributedGA.Hive;
    3132using HeuristicLab.Common;
     
    119120      Parameters.Add(new ValueParameter<StringValue>("JobGUID", "", new StringValue(Guid.NewGuid().ToString())));
    120121      Parameters.Add(new ValueParameter<ILog>("Log", "The log", new Log(1000)));
     122      Parameters.Add(new ValueParameter<IntValue>("ByteArraysAllocated", new IntValue(0)));
     123      Parameters.Add(new ValueParameter<IntValue>("ByteArraysFreed", new IntValue(0)));
     124      Parameters.Add(new ValueParameter<IntValue>("ByteArraysAlive", new IntValue(0)));
    121125
    122126      var validValues = new ItemSet<EnumValue<MigrationStrategy>>();
     
    145149      var communicationRate = ((PercentValue)Parameters["CommunicationRate"].ActualValue).Value;
    146150      var messageCacheCapacity = ((IntValue)Parameters["MessageCacheCapacity"].ActualValue).Value;
    147       h.Init(lanIpPrefix, contactServerUri, problemInstance, (int)(100 * messageCacheCapacity), (int)(100 * communicationRate));
     151      h.Init(lanIpPrefix, contactServerUri, problemInstance, messageCacheCapacity, (int)(100 * communicationRate));
    148152      h.ExceptionOccurend += ExceptionThrown;
    149153    }
     
    221225              HeuristicLab.Persistence.Default.Xml.XmlGenerator.Serialize(msgScope, stream);
    222226              message = stream.GetBuffer();
    223               h.PublishDataToNetwork(message);
     227              h.PublishDataToNetwork(ByteArrayWrapper.CreateByteArrayWrapper(message));
    224228            }
    225229          }
     
    230234          // recieve
    231235          var message = h.GetDataFromNetwork();
    232           List<KeyValuePair<PeerInfo, byte[]>> immigrants = new List<KeyValuePair<PeerInfo, byte[]>>();
     236          List<KeyValuePair<PeerInfo, ByteArrayWrapper>> immigrants = new List<KeyValuePair<PeerInfo, ByteArrayWrapper>>();
    233237          //limit number of immigrants to use
    234238          if (noOfEmigrants < message.Count) {
     
    264268          var qualityTranslatedName = QualityParameter.TranslatedName;
    265269          foreach (var msg in immigrants) {
    266             using (var stream = new MemoryStream(msg.Value)) {
     270            using (var stream = new MemoryStream(msg.Value.Array)) {
    267271              var immigrantScope = HeuristicLab.Persistence.Default.Xml.XmlParser.Deserialize<IScope>(stream);
    268272
     
    290294
    291295      MigrationIterations.Value++;
     296
     297      ((IValueParameter<IntValue>)Parameters["ByteArraysAllocated"]).Value.Value = ByteArrayWrapper.AllocatedCounter;
     298      ((IValueParameter<IntValue>)Parameters["ByteArraysFreed"]).Value.Value = ByteArrayWrapper.FreedCounter;
     299      ((IValueParameter<IntValue>)Parameters["ByteArraysAlive"]).Value.Value = ByteArrayWrapper.AliveCounter;
     300
    292301      return base.Apply();
    293302    }
Note: See TracChangeset for help on using the changeset viewer.