Спасибо за ответыПосмотреть вложение 48302
- ПатчКод:DoVersionCheck()
- КлиентКод:DoFullCheck()
Код:if (!webClient.IsBusy && !updaterWorker.IsBusy) { DoFullCheck(); // или DoVersionCheck }
Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Спасибо за ответыПосмотреть вложение 48302
- ПатчКод:DoVersionCheck()
- КлиентКод:DoFullCheck()
Код:if (!webClient.IsBusy && !updaterWorker.IsBusy) { DoFullCheck(); // или DoVersionCheck }
Для добавления юзерагента:Спасибо за ответы
webRequest = (HttpWebRequest)WebRequest.Create(PatchHost + fileDataArray[2]);
webRequest.UserAgent = "MOYUPDATER";webClient.Headers.Add(HttpRequestHeader.UserAgent, "MOYUPDATER");WindowState = FormWindowState.Minimized;            if (WindowState == FormWindowState.Minimized)
            {
                this.Hide();
                NotifyIcon.Visible = true;
                NotifyIcon.ShowBalloonTip(3000);
                NotifyIcon.Text = "MOYUPDATER";
            }            this.Show();
            WindowState = FormWindowState.Normal;NotifyIcon.Dispose(); 
Там async/потоки нужно дописывать для нормальной работыу кого как по скорости с этим апдейтером? залил на ftp (hetzner), канал 10 гбит, при обычном wget скорость отличная, мои домашние 500 мбит на фулл используются, через апдейтер - скорость 600 кбайт/сек)
это не при чем )Там async/потоки нужно дописывать для нормальной работы
Измени эту строку где начало byte[] downBufferу кого как по скорости с этим апдейтером? залил на ftp (hetzner), канал 10 гбит, при обычном wget скорость отличная, мои домашние 500 мбит на фулл используются, через апдейтер - скорость 600 кбайт/сек)
byte[] downBuffer = new byte[65536];найди строку SpeedLable.Text = и замени ее на это, будет в МБоу ты волшебник)
Посмотреть вложение 48649
 SpeedLable.Text = (Convert.ToDouble(fileStream.Length) / 1024 / 1024 / sw.Elapsed.TotalSeconds).ToString("0.00") + " MB/s";да, стало определенно лучше, но еще над дизайном шаманить и шаманить)найди строку SpeedLable.Text = и замени ее на это, будет в МБ
Код:SpeedLable.Text = (Convert.ToDouble(fileStream.Length) / 1024 / 1024 / sw.Elapsed.TotalSeconds).ToString("0.00") + " MB/s";
Там это всё равно нужно ) Скачка и распаковка идёт в одном потоке там )это не при чем )
Измени эту строку где начало byte[] downBuffer
Код:byte[] downBuffer = new byte[65536];
Я бы сказал последовательно, скачал- распаковал- скачал- распаковал)Там это всё равно нужно ) Скачка и распаковка идёт в одном потоке там )
там потоки добавить нужно)а ничего себе он файлы пакует около 5 часов патч геном
patch.ini вся инфа вылетает в 1 строку, неприятно)там потоки добавить нужно)
+ N и в чтении тоже добавить. Или сделать себе патч эдитор )patch.ini вся инфа вылетает в 1 строку, неприятно)
Ты что пакуешь 10-15 терабайт?а ничего себе он файлы пакует около 5 часов патч геном
Да тут еще зависит степень сжатия, там она максимальная. Понятно что если просто на лайте запаковать, почти без сжатия оно паканет быстроТы что пакуешь 10-15 терабайт?
Видимо "билдер" достаточно тугой, сделан абы как, никто не задумывался о том чтоб сделать по человечески, ?или он делался ещё в эпоху когда пентиумы существовали?.
Для примера, тестировщик моим аптейдером делает патч, 22.3 Гб клиент (классик кажется) запаковался за 16 минут, на проце Intel® Xeon® E5-2670 v2 10 ядер / 20 потоков, LGA2011 2.50GHz.
i7 10870, клиент около 20гб, загрузка процессом 14% причем не 1 поток, а раскинуто по всем.Ты что пакуешь 10-15 терабайт?
Видимо "билдер" достаточно тугой, сделан абы как, никто не задумывался о том чтоб сделать по человечески, ?или он делался ещё в эпоху когда пентиумы существовали?.
Для примера, тестировщик моим аптейдером делает патч, 22.3 Гб клиент (классик кажется) запаковался за 16 минут, на проце Intel® Xeon® E5-2670 v2 10 ядер / 20 потоков, LGA2011 2.50GHz.
+ N и в чтении тоже добавить. Или сделать себе патч эдитор )
private void ThreadFunction(string fileName, string destName)
        {
            /* do some work in a thread */
            CompressFileLZMA(fileName, destName);
        }
        private void patchWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;
            string inputPath = inputFolderTb.Text.TrimEnd('\\');
            string outputPath = outputFolderTb.Text.TrimEnd('\\');
            // Clear old files if any inside output
            clearDirectory(outputPath);
            var patchFileWriter = new StreamWriter(outputPath + @"\patch.ini");
            try
            {
                var fileList = this.GetFiles(inputPath);
                int nThreadCount = 0;
                foreach (string fileName in fileList)
                {
                    nThreadCount++;
                }
                Thread[] workerThreads = new Thread[nThreadCount];
                int nThreadNumb = 0;
                foreach (string fileName in fileList)
                {
                    if (worker.CancellationPending == true)
                    {
                        e.Cancel = true;
                        break;
                    }
                    var hash = GetFileMD5Hash(fileName);
                    var relativePath = fileName.Replace(inputPath, "");
                    var remotePath = relativePath.Replace(@"\", "/") + ".7z";
                    patchFileWriter.Write(hash + "|" + relativePath + "|" + remotePath + ";\n");
                    _ = Invoke((MethodInvoker)delegate
                    {
                        outputLabel.Text = "Processing " + relativePath.TrimStart('\\');
                    });
                    workerThreads[nThreadNumb] = new Thread(() => ThreadFunction(fileName, fileName.Replace(inputPath, outputPath) + ".7z"));
                    workerThreads[nThreadNumb].Start();
                    nThreadNumb++;
                }
                patchFileWriter.Close();
            }
            catch (Exception ex)
            {
                patchFileWriter.Close();
                throw ex;
            }
        }
я просто уже добавил настраиваемые потоки чисто на сжатие, 6 шт хватает чтоб на 80% грузить.. 19гб сжимает до 8. Но не понимаю как у вас оно жмет за 10 мин, когда у меня не меньше часа + у меня тоже nvme.я себе кстати через chatgpt организовал многопоток для билдера патча, i7 10700k + nvme за 10 минут упаковывает 23 гига
Интересно глянуть, где лежит?на с# есть же готовая либа для апдейтера........ там только форму выпилить и можно использовать.
в комплекте: Формы для апдейтера/Код для обновления файлов
