Does Bridge have memory leaks?

I've been using Bridge as a browser for a year now and I find that the longer it runs the more cumbersome it becomes - it's slow and memory intensive to begin with, but if I leave it running for a few hours it eventually becomes ungainly and it slowes down my other apps considerably - the only thing I can do is to periodicaly quit Bridge and re-start it, then everything is fine again (for a while) - What's this all about? Does Bridge have major memory problems or leaks? Why is it so cumbersome? Anyone else experiencing this?
DF

No known ones in Bridge 1.0.4.
There were some in Bridge 1.0, but those were fixed in subsequent releases.

Similar Messages

  • Since the itunes 10.4.1 update  I have memory leaks problems.

    Since the itunes 10.4.1 update  I have memory leaks problems, Itunes used memory start at about 100 megs as usual but when it play the ram usage climb about 4 kb per second ( one time I had itunes using 690 megs !). I had to periodically close and restart Itunes to clear the memory.
    Someone has suggestion to resolve this problem?

    Same issue, Running Windows 7 x64 with 6 Gigs of RAM and have iTunes 10.4.1 32bit version.
    I wanted to break in some headphones over the weekend, so left it playing a loop of songs. Came back on Monday to see my machine using a huge amount of RAM and iTunes just froze.
    Here is a shot of my Task Manager showing iTunes was using 1.5gigs of Memory.

  • OracleBulkCopy have memory leak

    I have a simple code that caus a memroy leak only when it used OracleBulkCopy:
    static void DoAll(bool withoutBulkCopy)
    using (OracleConnection oracleConnection =
    new OracleConnection("User Id=apolyakov;Password=oracle;Data Source=OPE"))
    oracleConnection.Open();
    using (OracleCommand command = oracleConnection.CreateCommand())
    command.CommandText = "truncate table test_a";
    command.ExecuteNonQuery();
    using (DataTable dataTable = new DataTable("test_a"))
    using (OracleDataAdapter adapter = new OracleDataAdapter("select * from test_a", oracleConnection))
    adapter.Fill(dataTable);
    Console.WriteLine("Begin generating of data (total memory used: {0})", GC.GetTotalMemory(false));
    Random random = new Random();
    for (int i = 0; i < 50000; ++i)
    byte[] bytes = new byte[1024];
    random.NextBytes(bytes);
    dataTable.Rows.Add(random.Next(), random.Next(), Convert.ToBase64String(bytes));
    Console.WriteLine("Generation of DataTable is {0}", GC.GetGeneration(dataTable));
    Console.WriteLine("End generating (total memory used: {0})", GC.GetTotalMemory(false));
    if (!withoutBulkCopy)
    Console.WriteLine(string.Format("Begin writing"));
    using (OracleBulkCopy bulkCopy = new OracleBulkCopy(oracleConnection))
    bulkCopy.BatchSize = 10000;
    bulkCopy.NotifyAfter = 10000;
    bulkCopy.BulkCopyTimeout = 100;
    bulkCopy.OracleRowsCopied += new OracleRowsCopiedEventHandler(bulkCopy_OracleRowsCopied);
    bulkCopy.DestinationTableName = "test_a";
    bulkCopy.WriteToServer(dataTable);
    Console.WriteLine(string.Format("End writing (total memory used: {0})", GC.GetTotalMemory(false)));
    static void bulkCopy_OracleRowsCopied(object sender,OracleRowsCopiedEventArgs eventArgs)
    Console.WriteLine("Wrote {0} rows.", eventArgs.RowsCopied);
    [STAThreadAttribute]
    static void Main(string[] args)
    try
    Console.WriteLine("Managed memory usage: {0}, unmanaged: {1}", GC.GetTotalMemory(false), Process.GetCurrentProcess().WorkingSet64);
    DoAll(false);
    Console.WriteLine("Managed memory usage: {0}, unmanaged: {1}", GC.GetTotalMemory(false), Process.GetCurrentProcess().WorkingSet64);
    Console.WriteLine("Run collect, press enter to continue");
    Console.ReadLine();
    GC.Collect();
    GC.GetTotalMemory(true);
    Console.WriteLine("Managed memory usage: {0}, unmanaged: {1}", GC.GetTotalMemory(true), Process.GetCurrentProcess().WorkingSet64);
    Console.WriteLine("End of collecting");
    Console.ReadLine();
    catch (Exception ex)
    Console.WriteLine(ex.Message);
    Console.ReadLine();
    DML for table test_a: "create table test_a (a number, b number, c nvarchar2(2000));"
    When I run method 'DoAll(false)' it takes a ~147MB managed memory and ~307MB total physical memory. After memory collecting it takes a 0.1MB managed and 161MB physical memory. When I set flag 'withoutBulkCopy' to 'true' and ran application again it took same size of managed memory, but 190MB physical memory and after collecting it took 51MB physical.
    If I use System.Data.SqlClient instead of Oracle.DataAccess.Client in this application it takes normal memory size, and after collecting it return to OS almost all memory (19MB physical memory usage).
    System: ODAC 11.1 (1110621), .NET Framework 2.0, WinXP SP3, Oracle Database 10g2
    This is a very important problem, because in real case we have a 137 column datasource with 500k rows. And we lost 500-700MB memory =((
    Please, answer to me how I can avoid this memory leak.
    Thanks.
    Edited by: Cloun on Feb 9, 2009 6:10 PM

    You have problem because the batch size property has value *10000* and amount of records(*50000*) bigger than this value.
    You can retrieve workaround from my post (OracleBulkCopy have memory leak  if BatchSize is less than record's count.

  • OracleBulkCopy have memory leak  if BatchSize is less than record's count.

    OracleBulkCopy::WriteToServer(IDataReader reader) have memory leak if BatchSize property is less than amount of record which were retrieved from IDataReader.
    We know workaround for that, but when this problem will be fixed?
    Code source at the bottom:
    *****************File::Program.cs*****************
    using System;
    using System.Configuration;
    using System.Data;
    using System.Diagnostics;
    using Oracle.DataAccess.Client;
    namespace WindowsApplication
    static class Program
    private static DataTable _testTable = new DataTable("TestData");
    private static int _batchSize = 10000;
    private static int _totalRecordForTest = 100000;
    private static int _bulkTimeOut = 600;
    private static string _targetConnectionString;
    private static string _targetTableName;
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    _testTable.ReadXmlSchema("tmp.data.schema");
    _testTable.ReadXml("tmp.data");
    _targetConnectionString = ConfigurationManager.AppSettings["targetConnectionString"];
    _targetTableName = ConfigurationManager.AppSettings["targetTableName"];
    _batchSize = int.Parse(ConfigurationManager.AppSettings["batchSize"]);
    _totalRecordForTest = int.Parse(ConfigurationManager.AppSettings["totalRecordForTest"]);
    _bulkTimeOut = int.Parse(ConfigurationManager.AppSettings["bulkTimeOut"]);
    PerformCorrectTest();
    Console.WriteLine("Do you want to perform memory leak test?(If no then click cancel key)");
    if (Console.ReadKey().Key != ConsoleKey.Escape)
    PerformMemoryLeakTest();
    Console.ReadKey();
    _testTable =null;
    public static void PerformCorrectTest()
    Console.WriteLine("Managed memory usage: {0}, unmanaged: {1}", GC.GetTotalMemory(false),
    Process.GetCurrentProcess().WorkingSet64);
    using (VirtualSourceReader wrapper = new VirtualSourceReader(new DataTableReader(_testTable), batchSize, totalRecordForTest))
    wrapper.RowsCopied += RowsCopied;
    using (OracleConnection targetConnection = new OracleConnection(_targetConnectionString))
    targetConnection.Open();
    Console.WriteLine("Bulk insert started at {0}", DateTime.Now);
    OracleBulkCopy bc = null;
    try
    bc = new OracleBulkCopy(targetConnection)
    DestinationTableName = _targetTableName,
    BulkCopyTimeout = _bulkTimeOut,
    BatchSize = _batchSize
    do
    bc.WriteToServer(wrapper);
    } while (wrapper.ResetState());
    finally
    if (null != bc)
    bc.Close();
    bc.Dispose();
    targetConnection.Clone();
    Console.WriteLine("Bulk insert completed at {0}", DateTime.Now);
    wrapper.Close();
    Console.WriteLine("Managed memory usage: {0}, unmanaged: {1}", GC.GetTotalMemory(false),
    Process.GetCurrentProcess().WorkingSet64);
    public static void PerformMemoryLeakTest()
    Console.WriteLine("Managed memory usage: {0}, unmanaged: {1}", GC.GetTotalMemory(false),
    Process.GetCurrentProcess().WorkingSet64);
    using (VirtualSourceReader wrapper = new VirtualSourceReader(new DataTableReader(_testTable), totalRecordForTest, totalRecordForTest))
    using (OracleConnection targetConnection = new OracleConnection(_targetConnectionString))
    targetConnection.Open();
    Console.WriteLine("Bulk insert started at {0}", DateTime.Now);
    OracleBulkCopy bc = null;
    try
    bc = new OracleBulkCopy(targetConnection)
    DestinationTableName = _targetTableName,
    BulkCopyTimeout = _bulkTimeOut,
    BatchSize = _batchSize,
    NotifyAfter = _batchSize,
    bc.OracleRowsCopied += OracleRowsCopied;
    bc.WriteToServer(wrapper);
    finally
    if (null != bc)
    bc.Close();
    bc.Dispose();
    targetConnection.Clone();
    Console.WriteLine("Bulk insert completed at {0}", DateTime.Now);
    wrapper.Close();
    Console.WriteLine("Managed memory usage: {0}, unmanaged: {1}", GC.GetTotalMemory(false),
    Process.GetCurrentProcess().WorkingSet64);
    private static void RowsCopied(object sender, long eventArgs)
    Console.WriteLine("Row Processed {0}. Current time is {1}", eventArgs, DateTime.Now);
    private static void OracleRowsCopied(object sender, OracleRowsCopiedEventArgs eventArgs)
    RowsCopied(sender, eventArgs.RowsCopied);
    *****************File::SourceDataReaderWrap.cs*****************
    using System;
    using System.Collections.Generic;
    using System.Data;
    using Oracle.DataAccess.Client;
    namespace WindowsFormsApplication1
    public delegate void OnRowProcessed(object sender, long rowCount);
    public class SourceDataReaderWrap:IDataReader
    protected IDataReader _originalReader;
    protected readonly int _batchSize;
    protected int _currentSessionRows;
    protected long _rowCount;
    public event OnRowProcessed RowsCopied;
    public SourceDataReaderWrap(IDataReader originalReader, int batchSize)
    _originalReader = originalReader;
    _batchSize = batchSize;
    _rowCount = 0;
    #region Implementation of IDisposable
    /// <summary>
    /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
    /// </summary>
    /// <filterpriority>2</filterpriority>
    public void Dispose()
    _originalReader.Dispose();
    _originalReader = null;
    if (RowsCopied != null)
    foreach (OnRowProcessed @delegate in new List<Delegate>(RowsCopied.GetInvocationList()))
    RowsCopied -= @delegate;
    #endregion
    #region Implementation of IDataRecord
    /// <summary>
    /// Gets the name for the field to find.
    /// </summary>
    /// <returns>
    /// The name of the field or the empty string (""), if there is no value to return.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public string GetName(int i)
    return _originalReader.GetName(i);
    /// <summary>
    /// Gets the data type information for the specified field.
    /// </summary>
    /// <returns>
    /// The data type information for the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public string GetDataTypeName(int i)
    return _originalReader.GetDataTypeName(i);
    /// <summary>
    /// Gets the <see cref="T:System.Type"/> information corresponding to the type of <see cref="T:System.Object"/> that would be returned from <see cref="M:System.Data.IDataRecord.GetValue(System.Int32)"/>.
    /// </summary>
    /// <returns>
    /// The <see cref="T:System.Type"/> information corresponding to the type of <see cref="T:System.Object"/> that would be returned from <see cref="M:System.Data.IDataRecord.GetValue(System.Int32)"/>.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public Type GetFieldType(int i)
    return _originalReader.GetFieldType(i);
    /// <summary>
    /// Return the value of the specified field.
    /// </summary>
    /// <returns>
    /// The <see cref="T:System.Object"/> which will contain the field value upon return.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public object GetValue(int i)
    return _originalReader.GetValue(i);
    /// <summary>
    /// Gets all the attribute fields in the collection for the current record.
    /// </summary>
    /// <returns>
    /// The number of instances of <see cref="T:System.Object"/> in the array.
    /// </returns>
    /// <param name="values">An array of <see cref="T:System.Object"/> to copy the attribute fields into.
    /// </param><filterpriority>2</filterpriority>
    public int GetValues(object[] values)
    return _originalReader.GetValues(values);
    /// <summary>
    /// Return the index of the named field.
    /// </summary>
    /// <returns>
    /// The index of the named field.
    /// </returns>
    /// <param name="name">The name of the field to find.
    /// </param><filterpriority>2</filterpriority>
    public int GetOrdinal(string name)
    return _originalReader.GetOrdinal(name);
    /// <summary>
    /// Gets the value of the specified column as a Boolean.
    /// </summary>
    /// <returns>
    /// The value of the column.
    /// </returns>
    /// <param name="i">The zero-based column ordinal.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public bool GetBoolean(int i)
    return _originalReader.GetBoolean(i);
    /// <summary>
    /// Gets the 8-bit unsigned integer value of the specified column.
    /// </summary>
    /// <returns>
    /// The 8-bit unsigned integer value of the specified column.
    /// </returns>
    /// <param name="i">The zero-based column ordinal.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public byte GetByte(int i)
    return _originalReader.GetByte(i);
    /// <summary>
    /// Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.
    /// </summary>
    /// <returns>
    /// The actual number of bytes read.
    /// </returns>
    /// <param name="i">The zero-based column ordinal.
    /// </param><param name="fieldOffset">The index within the field from which to start the read operation.
    /// </param><param name="buffer">The buffer into which to read the stream of bytes.
    /// </param><param name="bufferoffset">The index for <paramref name="buffer"/> to start the read operation.
    /// </param><param name="length">The number of bytes to read.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length)
    return _originalReader.GetBytes(i, fieldOffset, buffer, bufferoffset, length);
    /// <summary>
    /// Gets the character value of the specified column.
    /// </summary>
    /// <returns>
    /// The character value of the specified column.
    /// </returns>
    /// <param name="i">The zero-based column ordinal.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public char GetChar(int i)
    return _originalReader.GetChar(i);
    /// <summary>
    /// Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.
    /// </summary>
    /// <returns>
    /// The actual number of characters read.
    /// </returns>
    /// <param name="i">The zero-based column ordinal.
    /// </param><param name="fieldoffset">The index within the row from which to start the read operation.
    /// </param><param name="buffer">The buffer into which to read the stream of bytes.
    /// </param><param name="bufferoffset">The index for <paramref name="buffer"/> to start the read operation.
    /// </param><param name="length">The number of bytes to read.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
    return _originalReader.GetChars(i, fieldoffset, buffer, bufferoffset, length);
    /// <summary>
    /// Returns the GUID value of the specified field.
    /// </summary>
    /// <returns>
    /// The GUID value of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public Guid GetGuid(int i)
    return _originalReader.GetGuid(i);
    /// <summary>
    /// Gets the 16-bit signed integer value of the specified field.
    /// </summary>
    /// <returns>
    /// The 16-bit signed integer value of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public short GetInt16(int i)
    return _originalReader.GetInt16(i);
    /// <summary>
    /// Gets the 32-bit signed integer value of the specified field.
    /// </summary>
    /// <returns>
    /// The 32-bit signed integer value of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public int GetInt32(int i)
    return _originalReader.GetInt32(i);
    /// <summary>
    /// Gets the 64-bit signed integer value of the specified field.
    /// </summary>
    /// <returns>
    /// The 64-bit signed integer value of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public long GetInt64(int i)
    return _originalReader.GetInt64(i);
    /// <summary>
    /// Gets the single-precision floating point number of the specified field.
    /// </summary>
    /// <returns>
    /// The single-precision floating point number of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public float GetFloat(int i)
    return _originalReader.GetFloat(i);
    /// <summary>
    /// Gets the double-precision floating point number of the specified field.
    /// </summary>
    /// <returns>
    /// The double-precision floating point number of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public double GetDouble(int i)
    return _originalReader.GetDouble(i);
    /// <summary>
    /// Gets the string value of the specified field.
    /// </summary>
    /// <returns>
    /// The string value of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public string GetString(int i)
    return _originalReader.GetString(i);
    /// <summary>
    /// Gets the fixed-position numeric value of the specified field.
    /// </summary>
    /// <returns>
    /// The fixed-position numeric value of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public decimal GetDecimal(int i)
    return _originalReader.GetDecimal(i);
    /// <summary>
    /// Gets the date and time data value of the specified field.
    /// </summary>
    /// <returns>
    /// The date and time data value of the specified field.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public DateTime GetDateTime(int i)
    return _originalReader.GetDateTime(i);
    /// <summary>
    /// Returns an <see cref="T:System.Data.IDataReader"/> for the specified column ordinal.
    /// </summary>
    /// <returns>
    /// An <see cref="T:System.Data.IDataReader"/>.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public IDataReader GetData(int i)
    return _originalReader.GetData(i);
    /// <summary>
    /// Return whether the specified field is set to null.
    /// </summary>
    /// <returns>
    /// true if the specified field is set to null; otherwise, false.
    /// </returns>
    /// <param name="i">The index of the field to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    public bool IsDBNull(int i)
    return _originalReader.IsDBNull(i);
    /// <summary>
    /// Gets the number of columns in the current row.
    /// </summary>
    /// <returns>
    /// When not positioned in a valid recordset, 0; otherwise, the number of columns in the current record. The default is -1.
    /// </returns>
    /// <filterpriority>2</filterpriority>
    public int FieldCount
    get { return _originalReader.FieldCount; }
    /// <summary>
    /// Gets the column located at the specified index.
    /// </summary>
    /// <returns>
    /// The column located at the specified index as an <see cref="T:System.Object"/>.
    /// </returns>
    /// <param name="i">The zero-based index of the column to get.
    /// </param><exception cref="T:System.IndexOutOfRangeException">The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
    /// </exception><filterpriority>2</filterpriority>
    object IDataRecord.this[int i]
    get { return _originalReader[i]; }
    /// <summary>
    /// Gets the column with the specified name.
    /// </summary>
    /// <returns>
    /// The column with the specified name as an <see cref="T:System.Object"/>.
    /// </returns>
    /// <param name="name">The name of the column to find.
    /// </param><exception cref="T:System.IndexOutOfRangeException">No column with the specified name was found.
    /// </exception><filterpriority>2</filterpriority>
    object IDataRecord.this[string name]
    get { return _originalReader[name]; }
    #endregion
    #region Implementation of IDataReader
    /// <summary>
    /// Closes the <see cref="T:System.Data.IDataReader"/> Object.
    /// </summary>
    /// <filterpriority>2</filterpriority>
    public void Close()
    _originalReader.Close();
    /// <summary>
    /// Returns a <see cref="T:System.Data.DataTable"/> that describes the column metadata of the <see cref="T:System.Data.IDataReader"/>.
    /// </summary>
    /// <returns>
    /// A <see cref="T:System.Data.DataTable"/> that describes the column metadata.
    /// </returns>
    /// <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Data.IDataReader"/> is closed.
    /// </exception><filterpriority>2</filterpriority>
    public DataTable GetSchemaTable()
    return _originalReader.GetSchemaTable();
    /// <summary>
    /// Gets a value indicating the depth of nesting for the current row.
    /// </summary>
    /// <returns>
    /// The level of nesting.
    /// </returns>
    /// <filterpriority>2</filterpriority>
    public int Depth
    get { return _originalReader.Depth; }
    /// <summary>
    /// Gets a value indicating whether the data reader is closed.
    /// </summary>
    /// <returns>
    /// true if the data reader is closed; otherwise, false.
    /// </returns>
    /// <filterpriority>2</filterpriority>
    public bool IsClosed
    get { return _originalReader.IsClosed; }
    #endregion
    /// <summary>
    /// Advances the data reader to the next result, when reading the results of batch SQL statements.
    /// </summary>
    /// <returns>
    /// true if there are more rows; otherwise, false.
    /// </returns>
    /// <filterpriority>2</filterpriority>
    public bool NextResult()
    throw new NotImplementedException();
    /// <summary>
    /// Advances the <see cref="T:System.Data.IDataReader"/> to the next record.
    /// </summary>
    /// <returns>
    /// true if there are more rows; otherwise, false.
    /// </returns>
    /// <filterpriority>2</filterpriority>
    public virtual bool Read()
    if (_batchSize == (_currentSessionRows))
    return false;
    if(_originalReader.Read())
    _currentSessionRows++;
    _rowCount++;
    return true;
    return false;
    /// <summary>
    /// Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
    /// </summary>
    /// <returns>
    /// The number of rows changed, inserted, or deleted; 0 if no rows were affected or the statement failed; and -1 for SELECT statements.
    /// </returns>
    /// <filterpriority>2</filterpriority>
    public int RecordsAffected
    get { throw new NotImplementedException(); }
    public virtual bool ResetState()
    bool result = _currentSessionRows != 0;
    if (result && RowsCopied != null)
    RowsCopied(this, _rowCount);
    _currentSessionRows = 0;
    return result;
    public class VirtualSourceReader:SourceDataReaderWrap
    private readonly int _totalRecordCount;
    public VirtualSourceReader(IDataReader reader, int batchSize, int totalRecordCount)
    :base(reader, batchSize)
    _totalRecordCount = totalRecordCount;
    public override bool Read()
    if (_rowCount >= totalRecordCount || totalRecordCount <= 0)
    return false;
    if (_rowCount == 0)
    return base.Read();
    if (_batchSize == _currentSessionRows)
    return false;
    _currentSessionRows++;
    _rowCount++;
    return true;
    *****************File::tmp.data**********

    You have problem because the batch size property has value *10000* and amount of records(*50000*) bigger than this value.
    You can retrieve workaround from my post (OracleBulkCopy have memory leak  if BatchSize is less than record's count.

  • Applescript Image Events appears to have memory leak (or I don't know what I am doing)

    Using Image Events to create images and thumbnails for a website. The following code results in very large memory leaks in Image Event process. I have documented results of test runs in the comments.
    The leak (or poor coding on my part) results in a total system halt if I attempt to process more than about 400 images at a time. Basically, I run out ot physical memory. I am running a new model 13" MBP with 8GM RAM.  I have to manually stop Image Events to reclaim the memory (or reboot of course).
    Any help/suggestions would be appreciated.
    (* test memory leak in Image Events *)
              tests with 58 photos selected in iPhoto
              5.7 MB left in Image Events after run with only open and close
              22.0 MB left in Image Events after run with open, save and close
              45.9 MB left in Image Events after run with open, scale, save and close
              A run with 382 photos selected used OVER 3.8 GB (gigabytes) and the
              mac ran out of physical memory so I had to stop the test.
    tell application "Finder"
              set imageFolder to folder "test" of home as alias
    end tell
    tell application "iPhoto"
              set currPhotoList to the selection
              repeat with currPhoto in currPhotoList
                        log name of currPhoto as string
                        set theImagePath to image path of currPhoto
                        tell application "Image Events"
      launch
                                  set theImage to open theImagePath
      scale theImage to size 128
      save theImage in imageFolder as JPEG with icon
      close theImage
                        end tell
              end repeat
    end tell
    --- end of code example

    Does the following code do any difference? Most likely no I guess… but better try than nothing.
    tell application "Finder"
        set imageFolder to folder "test" of home as text -- instead of “as alias” (see theTargetPath below)
    end tell
    set theImagePaths to {}
    set theImagePathsRef to a reference to theImagePaths -- faster with big lists
    tell application "iPhoto"
        set currPhotoList to the selection
        repeat with currPhoto in currPhotoList
            log name of currPhoto as string
            get POSIX file (image path of currPhoto) as alias -- faster ?
            copy result to the end of theImagePathsRef
        end repeat
    end tell
    tell application "Image Events"
        launch
        repeat with theImagePath in theImagePaths
            set theImage to open theImagePath
            scale theImage to size 128
            set theTargetPath to (imageFolder & name of theImagePath)
            save theImage in theTargetPath as JPEG with icon
            close theImage
        end repeat
    end tell

  • Airport Extreme appears to have memory leak; sluggish after long uptime

    For a long time now, I have been frustrated by what appears to be a memory leak in the Airport Extreme firmware. After the unit has been running for a few weeks (and this varies from one week to one month approximately), the WLAN to LAN routing performance will drop drastically. It will go from ping times (from a WLAN host to a LAN host) of 1 mS or less to ping times in excess of one second.
    In this broken state, all traffic through the unit is dog slow. Doesn't matter what the traffic is-- if it's to and from the wireless LAN, it's going to take forever.
    If I power cycle the Airport Extreme, the problem will go away for another few weeks. I have dealt with this issue for several years with the hope that eventually a firmware upgrade would come that fixed it. So far, no such fix.
    Is anyone else experiencing this sort of behavior? When it isn't sluggish, the unit works wonderfully with Mac, Windows and Linux wireless clients so I have no reason to blame anything but the Extreme... particularly since the bandaid is a power cycle of it.
    All of my clients are 802.11b/g, no 'n' in service here.

    Boot into safe mode (restart holding down SHIFT key). If no KP, then uninstall and reinstall those 3rd-party items that Roger pointed out, one at a time, and restart. Continue until you determine which ones are causing the problem. If KP while in safe mode, then most likely hardware related. Run the Apple Hardware Test suite, extended tests at least twice, followed by Rember.  See
    OS X About kernel panics,
    Technical Note TN2063: Understanding and Debugging Kernel Panics,
    Mac OS X Kernel Panic FAQ,
    Resolving Kernel Panics,
    How to troubleshoot a kernel panic, and
    Tutorial: Avoiding and eliminating Kernel panics for more details.

  • I would like to upgrade my Imac 8,1 from 1 Gb to 4Gb RAM. Apple does not have memory for this Imac but recommended Crucial, Kingston or Ramjet. I have noticed a difference in pricing and would like to know if there are differences in their chips?

    I would like to upgrade my Imac 8,1 (20 inch early 2008) from 1Gb RAM to 4 Gb. Apple no longer provides 800Mhz2DDR2 SDRAM but recommended Crucial, Kingston or RAMjet.
    Are there any difference in these vendors chips as the price range is from $51-$99?
    Thanks, Johng

    I'm coming late to this string because I now have the same issue as gillnfly and you have all solved virtually all of my questions - thanks!  My only other question to add to what you've already said is - I currently have 1 G of memory installed.  Can I ADD a 2G card to get to 3G (probably more than I need), or should cards match if you have more than 1 - i.e., 2 1G cards or replace existing 1G with a 2G, or even 2 2G cards (way more than I need).
    Thanks for your spot-on comments!  I already found the OWC website and you've confirmed that's the best place to go.

  • Why does Bridge have trouble with accents in filenames?

    We work in an in-house studio with Creative Suite 4. Being in Montreal, Canada, many of our documents have accented characters in the file and folder names. When Bridge attempt to display these accented filenames, occasionally the capital letters get converted to lowercase letters and a trip to the Finder window (we are on OS X 10.5 and 10.6) shows folders doubling, tripling and then going back to normal with no human intervention, as if 'springing' on its own. The files are on a mounted server. The folders and files are created through Adobe Bridge CS4 or through the dialog box in InDesign CS4, Illustrator CS4 and/or Photoshop CS4.
    I've posted a video on my Dropbox account so you can see the problem.
    http://dl.dropbox.com/u/4289569/Business/jumping%20window.mov
    We've contacted Apple and they say it's not their problem. Is there a known bug regarding this that Adobe is aware of?

    When Bridge attempt to display these accented filenames, occasionally the
    capital letters get converted to lowercase letters and a trip to the Finder
    window (we are on OS X 10.5 and 10.6) shows folders doubling, tripling and
    then going back to normal with no human intervention, as if 'springing' on its
    own. The files are on a mounted server.
    Creating folders in Finder and Bridge with accents in the file and folder
    name (although I've always learned this is a bad thing to do but I
    understand the need for your use) is no problem on a stand alone
    configuration.
    I believe it has more to do with the use of working with a server. For best
    answers you could open a case with Adobe Tech Support using the contact
    button and explicit name the use of a server in the description.
    Hopefully you get a better answer from them then from 'not our problem'
    Apple...

  • Does Battery Have Memory?

    Whats the best way to maintain long battery use? Should the battery be drained all the way before charging or should the be constantly charged? Anyone know best option?

    Lithium-ion batteries do not have the "memory effect" of older batteries.
    Here is everything you need to know: http://www.apple.com/batteries/iphone.html

  • Memory leak using CWGraph

    I have a memory leak problem using the CWGraph control.
    I have an SDI application (MFC using Measurement Studio) and I generate dynamicaly a dialog containing a 2D Graph, and I use the OnTimer() of the dialog to generate data and to update the graph, with a timer of 50ms. In OnTimer() function I have a loop to generate
    and to update two plots on the graph. When I call a method of the graph (for example for changing the color of the plot or for updating a plot (using PlotXvsY)), I have a periodic increasing of memory with a fixed amount of memory (4k). In the same OnTimer() function I update also some CWSlide controls without memory leaks.
    If I comment the line that call a method of graph
    (ex. m_Graph.Plots.Item(1)....), the code works wi
    thout memory leaks.
    I'll apreciate any suggestion about this problem.

    I had the same memory leak problem with my program as well. I do not think it is because of using CWGraph. Memory leaks occur when you allocate memory and did not free them. The problem will accumulate and crashed randomly (sometime it crashed when you just move mouse around). Try this: if the program does not crash (memory leak crash) on the first time it compiles and runs, it is probable has nothing to do with the CWGraph. On the second and third run, if you did not free variable, the program will usually crashed. If your program crashed on the first time it runs, the problem might be something else.

  • Memory leak in NSUserDefaults

    Hi, I have a iphone photography App. In my app, user may open many images. Each time user opens a new image, I will save the image to NSUserDefault so that next time user starts my app, the last image will be loaded.
    Here is my code, (I call this method everytime user opens a new image)
    -(void) saveDefaults:(
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
    if (standardUserDefaults){
    NSData* imageData = [NSData dataWithBytes:(void*)someMemoryBuffer length:lengthOffBuffer];
    [standardUserDefaults setObject:imageData forKey:@"MyImage"];
    I do not call [standardUserDefaults synchronize] each time I put a new image in NSUserDefaults. I call it to commit saving image to NSUserDefault only when my program ends.
    It seems that there is a memory leak. I used PerfermanceTool, it does report any memory leak, but I can see that the memory token by my App increases everytime I call "saveDefaults" and perfermanceTool points the increase of memory to the "saveDefauts" function. Is there any memory problem in my code.
    Thank you very much.
    ff

    As I have neither an iPhone Developer account nor an iPhone, I can't help very much. Try this link. I don't know if it will help because I can't sign in. You could save your data in SQLite.
    You could follow these instructions. Try looking at the official Apple documentation instead.

  • Querying BOE security - getObjectPrincipals() has memory leak?

    Hi,
    I am querying the BOBJ Enterprise security and noticed that when I introduce the getObjectPrincipals() method in my code, my program consumes a great deal of additional memory, and will eventually fail due to insufficient heap space as the code iterates through the reports.  The issue does seem to be tied to specifically this method, as the memory is handled fine with everything else the same.  Is there a known memory leak with this method?  I am currently testing against XI R2 SP2 and noticed in release notes for SP5 there was a documented memory leak with a similiar method in the COM SDK - getAnyPrincipals(). 
    Can anyone shed any light on this?  I can provide code samples too if need be...
    Thanks!

    Thanks for the responses guys. 
    Ruben - I did try to use remove() for both of my iterators in use (the first of which contains all principals who have rights for the given InfoObject, and the 2nd contains all of the explicit security rights for the principal) - this unfortunately didn't have any affect on the memory usage.  What I tried was as follows:
    ISecurityInfo objSecurityInfo = boInfoObject.getSecurityInfo();
    IObjectPrincipals objPrincipals = objSecurityInfo.getObjectPrincipals();  //THIS I BELIEVE TO HAVE MEMORY LEAK
    Iterator objPrincipalIterator = objPrincipals.iterator();
    //retrieve rights applied to object
    while (objPrincipalIterator.hasNext())
            ...get security Role information for each principal
            //now get explicit rights information
            ISecurityRights objPrincipalExpRights = objPrincipal.getRights();
            Iterator objPrincipalExpRightsIterator = objPrincipalExpRights.iterator();
            while (objPrincipalExpRightsIterator.hasNext()
                       ..process explicit rights
                       objPrincipalExpRightsIterator.remove();
    obPrincipalIterator.remove();
    Ted,
    I was already batching the # of InfoObjects to retrieve security information for, but just to be sure I greatly decreased this number and did not see any improvement in memory usage.  I actually worked a case with SAP on this question, and they confirmed there was a memory leak with the getObjectPrincipals() method.  They confirmed this was fixed for XI R2 in SP5 for the .Net and COM SDKs, but not for Java.  Is there anything else I can try?  Using getObjectPrincipals(1) for only explicit rights works great as far as memory consumption, but only exposes users with custom roles and I need to retrieve principals with any type of role.
    Thanks!

  • CVI dll to read XML file causes memory leak

    Hello,
    I am facing a memory leak issue when I execute a dll created using CVI to read a XML file.
    Each iteration of the step is taking around 200k of memory.
    Short description of the code:
    Basically I am using a function created in CVI to read from an XML file by tag which 2 attributes: command and the response;
    int GetCmdAndRsp(char XML_File[MAX_STR_SIZE], char tag[MAX_STR_SIZE], char Command[MAX_STR_SIZE], char Response[MAX_STR_SIZE], char ErrorDescription[MAX_STR_SIZE]) 
    inputs:  
    - XML_File_path;
    - tagToFind;
    ouputs:
    - Command;
    - Response;
    - Error;
    Example:
    XMLFile:
    <WriteParameter Command="0x9 %i %i %i %i %i" Response = "0x8 V %i %i %i %i"/>
    Execution:
    error = GetCmdAndRsp("c:\\temp\\ACS_Messages.xml" ,"WriteParameter", cmd, rsp, errStr) 
    output:
    error = 0
    cmd = "0x9 %i %i %i %i %i"
    rsp = "0x8 V %i %i %i %i"
    errStr = "Unkown Error"
    Everything is working correctly but I have this memory leak issue. Why am I having such memory consumption?? Is it a TestStand or CVI issue??
    Each iteration I am loading the file, reading the file and discarding the file.
    Attached you can find the CVI project, a TestStand sequence to test (ReadXML_test2.seq) and an example of a XML file I am using.
    Please help me here.
    Thaks in advance.
    Regards,
    Pedro Moreira
    Attachments:
    ReadXML_Prj.zip ‏1826 KB

    Pedro,
    When a TestStand step executes, its result will be stored by TestStand which will be later used for generating reports or logging data into database.
    You are looking at the memory (private bytes) when the sequence file has not finished execution. So, the memory you are looking at, includes the memory used by TestStand to store result of the step. The memory used for storing results will be de-allocated after finishing the sequence file execution.
    Hence, we dont know if there is actual memory leak or not. You should look at the memory, before and after executing sequence file instead of looking in between execution.
    Also, here are some pointers that will be helpful for checking memory leak in an application:
    1. TestStand is based on COM and uses BSTR in many function. BSTR caches the memory and because of the behavior, sometime you might get false notion of having memory leak. Hence, you need to use SetOaNoCache function OR set the OANOCACHE=1 environment variable to disable caching.
    2. Execute the sequence file atleast once before doing the actual memory leak test. The dry run will make sure all static variables are initialized before doing memory leak test.
    3. Make sure that the state of system or application is same when considering the Private bytes. Ex: Lets say ReportViewControl is not visible before you start executing sequence file. Then you note down the private bytes and then execute the sequence file. After finishing execution, make sure you close the ReportViewControl and then note down the private bytes once again to check if memory is leaked or not.
    4. If there exists memory leak as you specified, it is possible that the leak is either in TestStand, or in your code. Make sure that your code doesn't leak by creating a small standalone application (probably a console application) which calls your code.
    Detecting memory leaks in CVI is better explained in
    http://www.ni.com/white-paper/10785/en/
    http://www.ni.com/white-paper/7959/en/
    - Shashidhar

  • Still memory leaks with 10.8.4

    I hoped 10.8.4 could solve the issue..
    Unfortunately I still have memory leaks, pages out and inactive memory full for a lot of programs running. First of all FCX importing and transcoding full the inactive memory, and OSX slows down, swapping to the SSD. The same problem with all (4 in total) macs mounting ML.
    Has anyone solved the problem please?
    Thanks in advance.
    Attilio

    Attilio, although I'm not a Final Cut user, I suspect that your problem is, as Kappy first said - insufficient RAM.
    See: http://forums.macrumors.com/showthread.php?t=1332888 for instance.
    It's a RAM hog. With the Retina, you're stuck with the RAM you've got now, unfortunately. With any other hardware, I'd consider boosting the RAM as much as you can. I don't run FCX or any video editing software (I build web sites - so I use Dreamweaver, Photoshop, Lightroom etc.) and I boosted the RAM in my Mac Pro to 18GB quite a while ago because I was seeing a lot of pageouts and slowdowns with 10GB. I do tend to have a ton of windows and apps open at once.
    See also: https://discussions.apple.com/thread/4759586?start=0&tstart=0 - Kappy's very good explanation of memory usage and various links to check.
    Whether it appeared to run better in SL or not, I can't really say - unless you ran two identical Macs, side by side doing exactly the same things in FCX with the two operating systems installed, I don't know how one could accurately assess that.

  • Version 7.3 memory leaks Windows 8 then crashes

    Hello, There are already some threads about this, but they mention Windows 7. I can confirm the memory leak (it gets up to 1.5 gb then crashes) is happening on windows 8 and windows 8.1. This issue wasn't present for skype 7.2.0.103 , it is present for 7.3 and also for 7.4.0.102 . It leaks for about 0.6MB per second , it constantly writes to disk 0.3 MB/S and uses ~12% CPU. This behavior happens only after I'm logged in. No calls, no messages, just staying logged in is sufficient. Furhtermore, the memory leaked by Skype is not returning to the system, so I end up having 75% memory used on a 16 GB machine after restarting skype several times (because it crashes and I need skype to communicate with my contacts constantly). Please provide me with a link to download 7.2 (since it works). I had this issue with Skype 7.3 and in 7.4 nothing got solved, so please give me a link to something that works rather that something that's shiny but broken. Thank you

    The memory leak is still occuring in 7.6.0+.
    Downgraded to 7.2.0.103 and it still does not prevent memory leak. Eventually it crashes around 1100MB of RAM usage on my system. Validated everything is working like directx, etc. I think this is a Microsoft Windows 8.1 bug, and not just a Skype memory leak issue, as I have seen one other application do the exact same thing (grow to 1100MB and crash). Time to go bug Microsoft for a solution... oh wait... Skype is a Microsoft product. 

Maybe you are looking for

  • Hyperlink in PDF

    After creating a PDF for a newsletter with a hyperlink for facebook I developed in publisher, the hyperlink no longer functioned.  In the past, I have created newsletters in publisher with hyperlinks that worked after I they were PDF'd.  Please help

  • Some blank WebI report sent by publication

    Hello I'm working on BO XI 3.1 SP2. I have created two webi documents. The first one contains a report used to list the dynamic recipients of mail. This report is filled and display : Ids, Full Name, destination mail adress. It contains undreds of re

  • System Management Best Practice Questions

    I help out with IT at a small fire department, town is around 3,000 people. They have about 10 PCs. The only time I really do anything is when someone has a question, or points out a problem. Everything is in place, and works well. However, is there

  • Has anyone bought a book with the itune card?

    I bought a $50 itune card. The small print on the back of the card says "Not redeemable for all purchases, such as ipod games, or app store purchases." I'm only interested in buying books. Can someone confirm that it works to buy books?

  • REUSE_ALV_LIST_DISPLAY append list checkboxes

    Hi, I am using REUSE_ALV_LIST_DISPLAY to display two lists after one another:      PERFORM append_event   USING    slis_ev_end_of_list                                      'LIST_2'                             CHANGING lt_alv_event.    CALL FUNCTION '