Почему Git.pm на cygwin жалуется на «Недостаточно памяти во время« большого »запроса?

я получаю эту ошибку при выполнении git svn rebase в cygwin

Out of memory during "large" request for 268439552 bytes, total sbrk() is 140652544 bytes at /usr/lib/perl5/site_perl/Git.pm line 898,  line 3.

268439552 - 256 МБ. Cygwin's максимальный объем памяти установлен на 1024 МБ, поэтому яЯ предполагаю, что у него другой максимальный объем памяти для Perl?

Как я могу увеличить максимальный объем памяти, который могут использовать perl-программы?

обновление: это где ошибка происходит (в Git.pm): I '

 while (1) {
      my $bytesLeft = $size - $bytesRead;
      last unless $bytesLeft;

      my $bytesToRead = $bytesLeft < 1024 ? $bytesLeft : 1024;
      my $read = read($in, $blob, $bytesToRead, $bytesRead); //line 898
      unless (defined($read)) {
         $self->_close_cat_blob();
         throw Error::Simple("in pipe went bad");
      }

      $bytesRead += $read;
   }

Мы добавили печать перед строкой 898, чтобы распечатать $ bytesToRead и $ bytesRead, и в результате мы получили 1024 для $ bytesToRead и 134220800 для $ bytesRead, так чтоs читает 1024 байта за раз, и это уже прочитало 128 МБ. Perl'sчитать' функция не хватает памяти и пытается запросить удвоениеs объем памяти ... есть ли способ указать, сколько памяти запрашивать? или это зависит от реализации?

ОБНОВЛЕНИЕ 2: во время тестирования выделения памяти в cygwin: эта программа на C 'выходной был 1536MB

int main() {
   unsigned int bit=0x40000000, sum=0;
   char *x;

   while (bit > 4096) {
      x = malloc(bit);
      if (x)
         sum += bit;
      bit >>= 1;
   }
   printf("%08x bytes (%.1fMb)\n", sum, sum/1024.0/1024.0);
   return 0;
}

Хотя эта Perl-программа аварийно завершала работу, если размер файла превышал 384 МБ (но выполнялась успешно, если размер файла был меньше).

open(F, "

Ответы на вопрос(4)

Ваш ответ на вопрос