[Avida-cvs] [avida-svn] r419 - in development: Avida.xcodeproj source/cpu
brysonda@myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Fri Dec 9 10:22:26 PST 2005
Author: brysonda
Date: 2005-12-09 13:22:25 -0500 (Fri, 09 Dec 2005)
New Revision: 419
Modified:
development/Avida.xcodeproj/project.pbxproj
development/source/cpu/cCPUMemory.cc
development/source/cpu/cCPUMemory.h
Log:
Bring forward cCPUMemory optimizations from trunk. Also, inline various cCPUMemory constructors.
Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj 2005-12-09 18:15:48 UTC (rev 418)
+++ development/Avida.xcodeproj/project.pbxproj 2005-12-09 18:22:25 UTC (rev 419)
@@ -745,7 +745,7 @@
DCC315CF076253A5008F7A48 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
DCC315D0076253A5008F7A48 /* task_event_gen.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = task_event_gen.cc; sourceTree = "<group>"; };
DCC315D1076253A5008F7A48 /* task_event_gen.old.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = task_event_gen.old.cc; sourceTree = "<group>"; };
- DCC3164D07626CF3008F7A48 /* primitive */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = primitive; sourceTree = BUILT_PRODUCTS_DIR; };
+ DCC3164D07626CF3008F7A48 /* primitive */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = primitive; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
Modified: development/source/cpu/cCPUMemory.cc
===================================================================
--- development/source/cpu/cCPUMemory.cc 2005-12-09 18:15:48 UTC (rev 418)
+++ development/source/cpu/cCPUMemory.cc 2005-12-09 18:22:25 UTC (rev 419)
@@ -12,14 +12,11 @@
using namespace std;
+const int MEMORY_INCREASE_MINIMUM = 10;
const double MEMORY_INCREASE_FACTOR = 1.5;
const double MEMORY_SHRINK_TEST_FACTOR = 4.0;
-cCPUMemory::cCPUMemory(int _size) : cGenome(_size), flag_array(_size)
-{
-}
-
-cCPUMemory::cCPUMemory(const cCPUMemory & in_memory)
+cCPUMemory::cCPUMemory(const cCPUMemory& in_memory)
: cGenome(in_memory), flag_array(in_memory.GetSize())
{
for (int i = 0; i < flag_array.GetSize(); i++) {
@@ -27,23 +24,6 @@
}
}
-cCPUMemory::cCPUMemory(const cGenome & in_genome)
- : cGenome(in_genome), flag_array(in_genome.GetSize())
-{
-}
-
-cCPUMemory::cCPUMemory(const cString & in_string)
- : cGenome(in_string), flag_array(in_string.GetSize())
-{
-}
-
-cCPUMemory::~cCPUMemory()
-{
-}
-
-
-// --- Private Methods ---
-
void cCPUMemory::SloppyResize(int new_size)
{
assert(new_size > 0);
@@ -54,9 +34,10 @@
const int array_size = genome.GetSize();
// Determine if we need to adjust the allocated array sizes...
- if (new_size > array_size ||
- new_size * MEMORY_SHRINK_TEST_FACTOR < array_size) {
- const int new_array_size = (int) (new_size * MEMORY_INCREASE_FACTOR);
+ if (new_size > array_size || new_size * MEMORY_SHRINK_TEST_FACTOR < array_size) {
+ int new_array_size = (int) (new_size * MEMORY_INCREASE_FACTOR);
+ const int new_array_min = new_size + MEMORY_INCREASE_MINIMUM;
+ if (new_array_min > new_array_size) new_array_size = new_array_min;
genome.Resize(new_array_size);
flag_array.Resize(new_array_size);
}
Modified: development/source/cpu/cCPUMemory.h
===================================================================
--- development/source/cpu/cCPUMemory.h 2005-12-09 18:15:48 UTC (rev 418)
+++ development/source/cpu/cCPUMemory.h 2005-12-09 18:22:25 UTC (rev 419)
@@ -14,8 +14,8 @@
#ifndef cGenome_h
#include "cGenome.h"
#endif
-#ifndef tArray_h
-#include "tArray.h"
+#ifndef tManagedPointerArray_h
+#include "tManagedPointerArray.h"
#endif
#ifndef cMemoryFlags_h
#include "cMemoryFlags.h"
@@ -29,18 +29,18 @@
class cCPUMemory : public cGenome {
private:
- tArray<cMemoryFlags> flag_array;
+ tManagedPointerArray<cMemoryFlags> flag_array;
// A collection of sloppy instructions to perform oft-used functions that
// will need to be cleaned up after this is run.
void SloppyResize(int new_size); // Set size, ignore new contents.
void SloppyInsert(int pos, int num_lines); // Add lines, ignore new contents.
public:
- explicit cCPUMemory(int _size=1);
- cCPUMemory(const cCPUMemory & in_memory);
- cCPUMemory(const cGenome & in_genome);
- cCPUMemory(const cString & in_string);
- ~cCPUMemory();
+ explicit cCPUMemory(int _size=1) : cGenome(_size), flag_array(_size) { ; }
+ cCPUMemory(const cCPUMemory& in_memory);
+ cCPUMemory(const cGenome& in_genome) : cGenome(in_genome), flag_array(in_genome.GetSize()) { ; }
+ cCPUMemory(const cString& in_string) : cGenome(in_string), flag_array(in_string.GetSize()) { ; }
+ ~cCPUMemory() { ; }
void operator=(const cCPUMemory & other_memory);
void operator=(const cGenome & other_genome);
More information about the Avida-cvs
mailing list