Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Одно сохранение большого файла приводит к нескольким изменениям файла на диске #236919

Open
wzhik opened this issue Dec 24, 2024 · 3 comments
Assignees
Labels
info-needed Issue requires more information from poster

Comments

@wzhik
Copy link

wzhik commented Dec 24, 2024

Type: Bug

  • Создаем текстовый файл большого размера с любым содержимым. Мой тестовый файл имел размер 1305351 байт.
  • ctrl+s или "сохранить" в меню "Файл"
  • файл несколько раз записывается на диск

Проблема в том что сборщик, например Gulp, расценивает такое сохранение как несколько изменений файла на диске и на каждое изменение выполняет некоторую функцию, обрабатывающую файл. В результате файл оказывается поврежденным.

Опытным путем определено, что так сохраняет только VS Code. Любой другой редактор при сохранении большого файла делает одну запись на диск.

VS Code version: Code 1.96.2 (fabdb6a, 2024-12-19T10:22:47.216Z)
OS version: Linux x64 6.8.0-51-generic
Modes:
Remote OS version: Linux x64 5.15.0-130-generic

System Info
Item Value
CPUs Intel(R) Core(TM) i5-8500T CPU @ 2.10GHz (6 x 3200)
GPU Status 2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: disabled_software
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: disabled_off
webnn: disabled_off
Load (avg) 2, 1, 1
Memory (System) 15.41GB (10.35GB free)
Process Argv
Screen Reader no
VM 0%
DESKTOP_SESSION mate
XDG_CURRENT_DESKTOP MATE
XDG_SESSION_DESKTOP mate
XDG_SESSION_TYPE x11
Item Value
Remote SSH: 192.168.0.5
OS Linux x64 5.15.0-130-generic
CPUs Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz (4 x 1998)
Memory (System) 5.78GB (3.46GB free)
VM 0%
Extensions (8)
Extension Author (truncated) Version
remote-ssh ms- 0.116.1
remote-ssh-edit ms- 0.87.0
remote-explorer ms- 0.4.3
githistory don 0.6.20
vscode-language-pack-ru MS- 1.96.2024121109
code-spell-checker str 4.0.21
code-spell-checker-russian str 2.2.2
sass-indented syl 1.8.31
@vs-code-engineering vs-code-engineering bot added *english-please Issue not using English translation-required-russian info-needed Issue requires more information from poster labels Dec 24, 2024
Copy link

Спасибо, что создали этот выпуск!

Однако, поскольку описание не на английском языке, нам сложно работать над ним. Если у вас есть возможность, пожалуйста, отредактируйте этот выпуск на английском языке. Пожалуйста, не добавляйте новый комментарий и не создавайте новую проблему, а отредактируйте существующую.

К сожалению, службы автоматического перевода не могут работать с техническим языком, необходимым для эффективного общения по вопросам программного обеспечения, поэтому мы рекомендуем найти переводчика, знакомого с нашими технологиями, чтобы помочь в переводе.

В противном случае эта проблема была помечена как требующая перевода, и член сообщества может помочь с ее переводом.


Thanks for creating this issue!

Unfortunately, as the description is not in English, it's hard for us to work on. If possible, please edit the original issue to be in English.

In our experience, automatic translation services are not able to handle the technical language needed to effectively communicate about software issues, so we recommend finding a human translator who is familiar with our technology to help.

Otherwise, we have marked this as needing translation and a community member may be able to help out.

@senyai
Copy link

senyai commented Dec 25, 2024

Предположим, у нас есть:

const data = new Uint8Array(1305351);

Другие программы делают один вызов

write(file, data);

Vscode делает что-то типа

while (data.length) {
    let [head, data] = data.splitBytes(65536);
    await write(file, head);
}

что позволяет сделать приложение более отзывчивым. И, скорее всего, не сам vscode
так делает, a nodejs. Т.е. выглядит как будто вы хотите замедлить vscode и ещё и
обратились не по адресу. Пожалуйста, лучше исследуйте ситуацию, и обращайтесь заново,
если у вас будут доказательства вины vscode. Насчёт Gulp, попробуйте добавить
"debounce" на события - это точно правильный подход.

@bpasero
Copy link
Member

bpasero commented Jan 6, 2025

Issues are to be reported in english

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
info-needed Issue requires more information from poster
Projects
None yet
Development

No branches or pull requests

4 participants