GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.4 (15)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Как получить значения множественных(точками) аргументов функции в Си?
Дмитрий Стволовой
Сообщений: 364
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 02 окт 21 3:34
Цитата:
Автор: гость

Я понимаю, но мне нужно на Си.
Файл датасета здесь:

Это код из тутора какогото учебного. Я
попробовал ещё этот парсер результат на много лучше, 24 секунды(файл inputs.csv).

Если не трудно уберите пожалуйста не стандартные типы данных чтобы была чистая функция или метод функции, вида float** parser(const char* path), хотя можно дабл или вектор векторов не суть.



import csv
import time
import pandas as pd

def csvlist(p):
t0 = time.time()
f = open(p)
csv_f = csv.reader(f)
data = list(csv_f)
print(time.time() - t0)

def csvpanda(p):
t0 = time.time()
df = pd.read_csv(p)
print(time.time() - t0)

p = "F:/tmp/inputs.csv"
csvlist(p) # 37 sec
csvpanda(p) # 17 sec



На моём ноуте ваш файл 37 и 17 сек преобразованим в лист и пандой.

Вопрос скорости парсера не совсем корректно поставлен, можно конечно запилить парсер который примерно в двое будет обходить пандовский, но вероятно путём устранения всех защитных проверок, оставив чистую логику, что в боевом применении будет приносить больше проблем чем пользы. ИМХО 15-20 сек для такого большого сета это приемлемо.
[Ответ][Цитата]
гость
185.31.175.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 02 окт 21 10:49
Цитата:
Автор: гость

я для целых чисел сделал, имея разряды числа в массиве char, я "сконструировал" из них целое число, тем самым убрав преобразование типов, которое отнимает много времени. а у вас с плавающей запятой, хрен его знает, можно ли для float так сделать. в принципе, наверное, можно..
float atof(char*)
[Ответ][Цитата]
гость
178.176.212.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 02 окт 21 12:53
Цитата:
Автор: гость
float atof(char*)

вопрос в том, можно ли преобразовать быстрее, чем atof..
[Ответ][Цитата]
Дмитрий Стволовой
Сообщений: 364
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 03 окт 21 6:03
Изменено: 03 окт 21 6:04
Цитата:
Автор: гость


вопрос в том, можно ли преобразовать быстрее, чем atof..
Думаю основной тормоз не в самом atof, а в том что ему нужно на вход подать скопированную строку, а нужно что бы он брал на лету atof(char* start, char* end ), ну и внутри логики atof если убрать всё "лишнее", все проверки, предположить что текст будет без ошибок, тогда думаю 2-3х скорости можно будет получить.

Ну и раумеется можно же ещё и распаралелить))
[Ответ][Цитата]
гость
62.212.239.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 03 окт 21 7:02
Цитата:
Автор: гость
вопрос в том, можно ли преобразовать быстрее, чем atof..

Цитата:
Автор: Дмитрий Стволовой

Думаю основной тормоз не в самом atof, а в том что ему нужно на вход подать скопированную строку, а нужно что бы он брал на лету atof(char* start, char* end ), ну и внутри логики atof если убрать всё "лишнее", все проверки, предположить что текст будет без ошибок, тогда думаю 2-3х скорости можно будет получить.

Ну и раумеется можно же ещё и распаралелить))
Отжеж юродивым неймётся, жалкое зрелище, айда на стройку или сторожить магазины!

Прошли те времена когда кто то что то пишет самостоятельно. Не ну серьёзно, вы же не варите Хайнекен сами или Кокаколу, почему это не должно касаться кода? Миром правят бренды, профессиональные команды, пайплайн, а мы — пользователи, даже те кто работает разработчиком софта.

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

По суть обычный разработчик только конфигурирует, добавляет "вишенку на торт", это скорей дизайнерская работа, главное в ней это не показаться старомодным, это самое плохое. Репутация это всё, поэтому важно одеваться как денди, и вообще жить как денди, а когда уже нароботается репутация можно взять образ Стив Джобса или Марка Цукербарга, этакий гений со стилем, но не социопат, не интроверт.

А если до 30ти не стал Стивом Джобсом, увы уже придётся чем то другим заняться, скорей всего физический труд какой то унизительный.
[Ответ][Цитата]
гость
185.100.87.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 03 окт 21 8:39
Цитата:
Автор: гость


есть функция типа

void func(int v1,...)
{
как получить ззанчения всех аргументов которые с точками? (...)
}
на паскале нет функций с переменным числом аргументов, а на паскале пишет киевский чиновник Андрей
[Ответ][Цитата]
гость
178.176.212.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 03 окт 21 12:13
Цитата:
Автор: гость
айда на стройку или сторожить магазины!

вы, уважаемый, на стройке или заводе давненько не были, и мне что-то подсказывает, что никогда..
Для информации вам: слесарь современный не менее нагружен в интеллектуальном плане, чем программист.. А еще и в физическом.. В общем, вы о современной жизни мало что знаете.. как раз такие как вы и сторожат магазины, в итоге..
[Ответ][Цитата]
гость
159.89.174.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 04 окт 21 3:49
Ладненько, вопрос с csv-парсером исчерпан, 24 сек с https://github.com/vincentlaucsb/csv-parser считаю вполне годным для моих целей.

Всем спасибо.
[Ответ][Цитата]
гость
185.31.175.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 04 окт 21 14:48
Цитата:
Автор: гость
вопрос в том, можно ли преобразовать быстрее, чем atof..
atof - системная функция, которая старше доса, наверно переписывалась сотни раз чтобы работать оптимально, сомневаюсь что вы или кто то другой, праздным вечером под пивко, перепишет её быстрее чем она уже написанна.
[Ответ][Цитата]
Андрей Кучеменко
Сообщений: 74
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 09 окт 21 10:57
Цитата:
Автор: гость

atof - системная функция, которая старше доса, наверно переписывалась сотни раз чтобы работать оптимально, сомневаюсь что вы или кто то другой, праздным вечером под пивко, перепишет её быстрее чем она уже написанна.
Ну почему, если заглянуть в сорцы сей то можно удивиться как там например функции через 3-8 обёрток гоняют, пока не доходит до функционального кода, только это может в двое замедлить. Но "глаза боятся а руки делают", я может на неделе попробую тоже ченить набросать.
[Ответ][Цитата]
гость
192.42.116.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 11 окт 21 11:32
Цитата:
Автор: гость

atof - системная функция, которая старше доса, наверно переписывалась сотни раз чтобы работать оптимально, сомневаюсь что вы или кто то другой, праздным вечером под пивко, перепишет её быстрее чем она уже написанна.
А кто в зравом уме будет оптимизировать Си-функции? Сейчас даже на питоне редко(почти никогда) императивный код пишут, 99% это конфигурирование и юзание билиотек, чисто декларативное программирование.
[Ответ][Цитата]
гость 188
Сообщений: 119
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 31 окт 21 3:47
up

p.s всё никак не сяду проверить, можно ли написать быстрее atof, ебать, времени нет, один выходной в неделю.. Ничо, скоро отпуск, сяду проверю..
[Ответ][Цитата]
гость
192.42.116.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 31 окт 21 9:46
Цитата:
Автор: гость 188

up

p.s всё никак не сяду проверить, можно ли написать быстрее atof, ебать, времени нет, один выходной в неделю.. Ничо, скоро отпуск, сяду проверю..
А можно ли двигаться быстре скорости света?

Я б ещё понял если бы вы мечтали что то там в глубоких сетках как то оптимизировать, параметры какието в тензорфлоу, хотя и это так же гиблая затея как для сторожа или дворника. Но системные функции самого быстрого ЯП обогнать, это только на готайке фрики могут пробовать.
[Ответ][Цитата]
гость
51.38.233.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 31 окт 21 14:16
6 сек на хаскеле


module Main where

import qualified Data.Vector as V
import qualified Data.ByteString.Lazy as BL
import Data.Csv

main :: IO ()
main = do
f <- BL.readFile "inputs.csv"
case decode NoHeader f of
Left err -> print err
Right xs -> V.forM_ xs $ \(x :: Int, y :: Int) -> print (x, y)
[Ответ][Цитата]
гость
188.170.196.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 06 ноя 21 0:50
Цитата:
Автор: гость
А кто в зравом уме будет оптимизировать Си-функции?

ха-ха, а кто на этом форуме в здравом уме??
[Ответ][Цитата]
 Стр.4 (15): 1  2  3  [4]  5  6  7  8  ...  15<< < Пред. | След. > >>