Возможная утечка памяти в StringSubstr

 

Подвисает терминал на ERR_NO_MEMORY_FOR_TEMP_STRING

начал изучать проблему. Так как в коде эксперта нет ни одной сторки с накоплением поэтому подозреваю именно StringSubstr

для проверки кинул вот такую абракадабру:

  int err, i=0;
  string st;
  while (true)
  {
  	err=GetLastError(); if (err>0) Comment(err);
  	if (StringSubstr("ssddfyushdfjkvnbx zxbcvjxvkfjvbd 89et fodfgj hjdfobvuh 3rthg0 945 hjdfibuh wrtoghj ywhoerijyh h", 0, StringLen("ssddfyushdfjkvnbx zxbcvjxvkfjvbd 89et fodfgj hjdfobvuh 3rthg0 945 hjdfibuh wrtoghj ywhoerijyh "))=="ssddfyushdfjkvnbx zxbcvjxvkfjvbd 89et fodfgj hjdfobvuh 3rthg0 945 hjdfibuh wrtoghj ywhoerijyh ")
  	{
  		Comment(i+"  "+StringSubstr("ssddfyushdfjkvnbx zxbcvjxvkfjvbd 89et fodfgj hjdfobvuh 3rthg0 945 hjdfibuh wrtoghj ywhoerijyh h", 0, StringLen("ssddfyushdfjkvnbx zxbcvjxvkfjvbd 89et fodfgj hjdfobvuh 3rthg0 945 hjdfibuh wrtoghj ywhoerijyh ")));
  		Sleep(2);
  	}
  	i++;
  }


смотру в диспетчере задач - память действительно потихоньку уходит...


Проверьте пожалуста leak, а то работать эксперту невозможно.

 
интересно, какого значения достигает i
 
Есть такое... Тоже было. Решил проблему путём отказа от строк и переходом к работе со символьным представлением текста. Т.е. с-строки.
 
sergeev писал(а) >>

Подвисает терминал на ERR_NO_MEMORY_FOR_TEMP_STRING

начал изучать проблему. Так как в коде эксперта нет ни одной сторки с накоплением поэтому подозреваю именно StringSubstr

для проверки кинул вот такую абракадабру:

смотру в диспетчере задач - память действительно потихоньку уходит...

Проверьте пожалуста leak, а то работать эксперту невозможно.

Насколько потихоньку?

За час работы пока ничего не утекло. Продолжаю наблюдения. Memory Validator ничего не показал.

 

У меня это очень давно было. Года три назад. С тех пор не работаю со строками в MQL4.

Тогда память зажирало до 1,8 Гб менее, чем за пол часа. Но там не только строки были виноваты. Там история ещё подгружалась.

После отказа от строк удалось свести потребление памяти до 170 Мб.