За последние 24 часа нас посетили 70599 программистов и 1602 робота. Сейчас ищут 1026 программистов ...

Какой скрипт самый быстрый...?

Тема в разделе "Прочее", создана пользователем filmchess, 16 июн 2025.

  1. filmchess

    filmchess Новичок

    С нами с:
    27 мар 2025
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте.
    Я врач на пенсии, мне 61 год, хочу реализовать свой стартап, для этого готов потратить часть пенсии и сбережения. Прошу простить за неточности изложения.
    Замысел:
    1. Пользователь на веб форме вводит трехзначные числа от 20 до 50 (это я называю одним "запросом"). Эти данные передаются на сервер.
    2. На сервере загружена таблица 5 мб и "скрипт" - защищенный/уникальный, данные обрабатываются, выбираются походящие строки и возвращаются пользователю.
    Вопросы:
    На каком языке лучше поручить написание такого "скрипта"? Какой сервер использовать для безболезненного увеличения быстродействия обработки "запросов", т.е от условных 10 "запросов" в сутки, до 100 000 тыс. в сутки.
    Т.е цена-качество/быстродействие. Я сторонник того, что лучше переплатить, чем экономить на мелочах.
     
  2. bimply

    bimply Активный пользователь

    С нами с:
    13 авг 2012
    Сообщения:
    460
    Симпатии:
    16
    Если весь "стартап" это ввод числа и вывод соответсвующих строк то берете самый копеечный хостинг за 300 рублей в месяц.
    Далее перегоняете ексель в csv и выводите строки циклом в php, или лучше сначала собрать простейший php скрипт на 100 строк и уже выгрузить на хостинг который не дороже 300 рублей.

    100 000 запросов думаю выдержит сервак за 300 рублей

    Приведите пример файла таблицы и какие конкретно данные нужно фильтровать(от 20 до 50 это двузначные числа)
     
    filmchess нравится это.
  3. filmchess

    filmchess Новичок

    С нами с:
    27 мар 2025
    Сообщения:
    5
    Симпатии:
    0
    Спасибо за ответ!
    Таблица Эксель. Лист1.
    Снимок экрана 2025-06-16 104422.png
    Строка 2 со столбца F Верхняя граница диапазона. Строка 3 - Нижняя. Строка 4 - Опорные значения пользователя.
    Пустые ячейки в строках 2,3,4 означают, что значения любые.

    Лист2
    Снимок экрана 2025-06-16 114534.png
    Шапка скопирована функцией по типу='Лист1'!F2
    Столбец Е в 100Ед. Я попробовал применить коэффициенты от 1 до 100 (значения в строках меняются линейно), но таблица увеличилась в 100 раз.
    Снимок экрана 2025-06-16 120040.png
    Насколько целесообразно выкладывать большую таблицу или делать это программно на сервере с маленькой, я не знаю.
    Задача найти такие строки, чтобы в сумме с опорными значениями по столбцам находились в границах диапазона.
    Для этого примера у меня получился такой результат. рис. ниже
    Снимок экрана 2025-06-16 121318.png
    Такой вариант редкий, чаще найти строки не удается. Тогда нужно найти строку, которая компенсирует самые большие дефициты, сложить с опорными значениями и найти другие другие строки, т.е комбинации из двух строк.

    ссылка на эксель https://wdho.ru/c3mW/1234php.xlsx
     
    #3 filmchess, 16 июн 2025
    Последнее редактирование: 16 июн 2025
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    1. Эксель хорош только для понимания, данные однозначно надо в БД хранить
    2. Понять суть выдачи данных - реализовать нужную выборку
    3. Отдать результат

    100 тыс в сутки - пара запросов в секунду... ерунда.
    Я бы делал на php

    ... ну и сомнения в такой популярности запросов ))))
     
    filmchess нравится это.
  5. bimply

    bimply Активный пользователь

    С нами с:
    13 авг 2012
    Сообщения:
    460
    Симпатии:
    16
    Тут или простецкий фреймворк типа yii1, либо прямые запросы в пхп типа select * ... where num1 > .... что не есть гуд, опять же нужно перегнать в mysql
    Думаю самый простой вариант - перегнать в csv и там уже просто циклом for ... производить сравнение, по крайне мере не нужно перегонять в mysql, а также можно подготовить датасеты для разных диапазонов уже отфильтрованные

    P.S.: python pandas напрямую делает выборки из екселя
     
    #5 bimply, 16 июн 2025
    Последнее редактирование: 16 июн 2025
    filmchess нравится это.
  6. bimply

    bimply Активный пользователь

    С нами с:
    13 авг 2012
    Сообщения:
    460
    Симпатии:
    16
    Резюмируя:
    1. Для совсем мелких проектов нет смысла тащить простецкие фреймворки. Тогда все запросы идут через mysql что режет глаз и при разрастании проекта превращается в говнокод
    2. Если планируется проект развивать логично использовать yii1 к примеру чтобы избавиться от говнокода, но это требует более высокий порог вхождения
    3. Напрямую с екселем работает питон, можно рассмотреть django, тогда вам не нужно будет эксель никуда перегонять, ваши выборки без говнокода можно будет делать напрямую. Но django опять же это еще больший порог вхождения чем php + yii1.
    4. 100 000 человек если в сутки планируете... Реклама ппц сейчас дорогая что в поисковиках что в телеге/вк/ и прочих социалках. Это дорого, очень
     
    filmchess нравится это.
  7. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    Ребята, поверьте - работа с файлами .. при большом кол-ве обращений - это боль, в принципе в том числе для решения этих болей и БД придумали .... а так - начнутся блокировки, один процесс не будет давать другому файл...

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

    Был вопрос - на каком языке... ну под веб это однозначно php или python и найти спецов проще и популярно... остальное - как я считаю будет неоправданно заморочено для такой задачи
     
  8. filmchess

    filmchess Новичок

    С нами с:
    27 мар 2025
    Сообщения:
    5
    Симпатии:
    0
    Спасибо! Я не углублялся в излишние подробности, но предоставил файл. Это файл я предоставил одному Исполнителю и он собрался Коэффициенты от 001 до 100 писать вручную и запросил за это 3000 руб. Я ответил, что вручную так это и стоит, но можно сделать с помощью макроса или языка М.
    Option Explicit

    Sub appendRows()
    Dim shSour As Worksheet
    Dim shDest As Worksheet
    Dim iRows As Long, iFirstRow As Integer
    Dim aVals As Variant, aDest As Variant
    Dim i As Long, j As Long, iCurr As Long, m As Integer, n As Integer
    Set shSour = ThisWorkbook.Sheets("Sheet1")
    Set shDest = ThisWorkbook.Sheets("Sheet2")
    iRows = shSour.Cells(Rows.Count, 1).End(xlUp).Row
    iFirstRow = 9
    n = 100
    aVals = shSour.Range("A" & CStr(iFirstRow) & ":I" & CStr(iRows))
    ReDim aDest(1 To iRows * n, 1 To UBound(aVals, 2))
    iCurr = 1
    For i = LBound(aVals) To UBound(aVals)
    aDest(iCurr, 1) = aVals(i, 1)
    For m = 1 To 9
    aDest(iCurr, m) = aVals(i, m)
    Next m
    iCurr = iCurr + 1
    For j = 2 To n
    For m = 1 To 9
    If m = 1 Then
    If j < 10 Then
    aDest(iCurr, m) = CStr(aVals(i, m)) & " 0" & CStr(j)
    Else
    aDest(iCurr, m) = CStr(aVals(i, m)) & " " & CStr(j)
    End If
    Else
    aDest(iCurr, m) = aVals(i, m) * j
    End If
    Next m
    iCurr = iCurr + 1
    Next j
    Next i
    shDest.Select
    shDest.Cells.ClearContents
    shDest.Cells(9, 1).Resize(UBound(aDest), UBound(aDest, 2)).Value = aDest
    Set shSour = Nothing
    Set shDest = Nothing
    End Sub
    Но макрос или код на языке М нужно всё равно переводить на php или python поэтому и спрашивал.
    Тестировать программистов, кто лучше разбирается в решении таких алгоритмов (пример и вариант решения предоставил) сложная задача, ну и вопросы предоплаты. Будет, по-моему некрасиво, если несколько программистов будут тратить свое время, а вознаграждение получит один, но ведь для других я буду "редиской" = не хорошим человеком. Как поступить правильно? а пока, пытаюсь самостоятельно разобраться в функции "Подбор параметра" (Goal Seek) для нескольких ячеек.
     
  9. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    хм .... язык М.... раньше вроде это называлось VBA ))

    Без предоплаты вряд-ли нормальный программист согласится, если только студент какой за еду )))

    Какой смысл разбираться в функции там какой-то в Экселе? Если все равно это потом будет сделано не в нём..... для себя чисто если

    А так .... не только подбор исполнителя тяжелая задача, выбор заказчика тоже всегда несет за собой риски
     
  10. bimply

    bimply Активный пользователь

    С нами с:
    13 авг 2012
    Сообщения:
    460
    Симпатии:
    16
    Глядя на язык макросов экселя понимаю что если в таком разобрались, то в php/python уж подавно
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    @filmchess, Я тебе больше скажу - ты можешь вообще бесплатно на ухаха сделать. Лишь бы логичные вопросы были
    https://chat.qwenlm.ai/
     
  12. filmchess

    filmchess Новичок

    С нами с:
    27 мар 2025
    Сообщения:
    5
    Симпатии:
    0
    Спасибо! Извиняюсь, что не ответил сразу. Пытался понять существует ли решение?! Да, существует, в Excel - Расширенный фильтр.
    Код (Text):
    1. ="<="&ЕСЛИОШИБКА(EXP(LN(ИНДЕКС(Лист1!$F2:$EY2;(СТОЛБЕЦ()-1)/2+1)-ИНДЕКС(Лист1!$F4:$EY4;(СТОЛБЕЦ()-1)/2+1)));9^9)
    Слова об избыточном коде произвели на меня большое впечатление. Макрос писал не я, просто показал пример как одно решение можно выполнить за 3 минуты вместо 24 часа. Сам вряд ли освою программирование, уже старый. Поэтому и задачу разделил на части.

    В какую сумму оценить решение Задачи в https://php.ru/forum/threads/kakoj-skript-samyj-bystryj.103751/#post-669645 Пункт 1 пропустить (можно не делать), т.к самостоятельно увеличил Таблицу до 100 мб

    Еще раз спасибо!