Jump to content
  • 0

32767


Быколай
 Share

Question

Суть проблемы: работаю с большим объёмом данных. Есть php-скрипт который обходит 256^2 объектов. На каждый объект создаётся текстовый файл, в котором храниться строка из генерируемого скриптом рандомного ряда. Вероятно проблема и не в php. Скорее в файловой системе или ОС.

Файлы успешно создаются начиная с 0.0 до 255.132 - 32767 штуки (общий объём ~37 Mb). Файловая система - FAT32, ОС - WinXP. Гуглил ограничения файловой системы и само загадочное число, но объяснения не нашёл. Кто нибудь может пролить свет на мистику этого явления?

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Число "подозрительно смахивает" на 215-1 — максимальное двухбайтное целое со знаком. На ограничения FAT32 вроде непохоже (судя по официальной доке и ответам здесь), может, где-то при генерации имени файла как раз отрицательные числа или недопустимые в именах символы вылезли?

Link to comment
Share on other sites

  • 0

Число "подозрительно смахивает" на 215-1 — максимальное двухбайтное целое со знаком.

Да, это я заметил. В NTFS этим числом ограничена имя файла. Имена файлов у меня все строятся по схеме от 0.0.txt до 255.255.txt. Для проверки переименовал папку с первой частью файлов, в пустую скрипт с успехом записал оставшиеся 31 488, имена все в порядке. В общем ума не приложу <_<

ЗЫ, да у меня не ровно 256^2, там несколько исключений по ходу пьесы.

Link to comment
Share on other sites

  • 0

Суть проблемы: работаю с большим объёмом данных. Есть php-скрипт который обходит 256^2 объектов. На каждый объект создаётся текстовый файл, в котором храниться строка из генерируемого скриптом рандомного ряда. Вероятно проблема и не в php. Скорее в файловой системе или ОС.

Файлы успешно создаются начиная с 0.0 до 255.132 - 32767 штуки (общий объём ~37 Mb). Файловая система - FAT32, ОС - WinXP. Гуглил ограничения файловой системы и само загадочное число, но объяснения не нашёл. Кто нибудь может пролить свет на мистику этого явления?

Подозреваю, что проблема в реализации PHP под определенную ОС. Раз это интерация, то счетчик по дефолту ограничен размером signed int. Попробуйте перед вызовом интерации присвоить счетчику значение 4 294 967 295. Переменная автоматически (насколько я знаю, а знаю мало <_< ) получит тип unsigned int.

Link to comment
Share on other sites

  • 0

Подозреваю, что проблема в реализации PHP под определенную ОС. Раз это интерация, то счетчик по дефолту ограничен размером signed int. Попробуйте перед вызовом интерации присвоить счетчику значение 4 294 967 295. Переменная автоматически (насколько я знаю, а знаю мало <_< ) получит тип unsigned int.

не, этот вариант отпадает. у меня цикл запускается несколько раз, не за один проход весь счётчик прокручивается. пришлось так сделать, поскольку памяти никак не хватала, что бы в один заход обработать весь объём.

и при попытке слить все файлы в одну папку -- получил стандартное сообщение от проводника:

"ошибка при перемещении файла или папки. не удаётся создать файл или папку". Так что беда тут с файловой системой/ОС.

ЗЫ: может во флейм тему перенести? поскольку тема из околосайтовой перерастает в операционную.

Edited by Быколай
Link to comment
Share on other sites

  • 0

Это ограничение на кол-во файлов в одном каталоге(похоже программное), попробуйте структурировать создаваемые файлы в подкаталогах, например по тысяче.

да, пока пришлось так и сделать. уже из любопытства интересно чем это ограничение м.б. обусловлено?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy