Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
27 Ноября 2024, 14:43:21


Войти


Страниц: 1 2 3 [4] 5 6   Вниз
  Печать  
Автор Тема: Программирование под linux  (Прочитано 84794 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
kaigerda
Юзверь
**

Карма: 0
Сообщений: 33


Награды
« Ответ #45 : 05 Марта 2008, 14:32:21 »

Функция КонецФибоначчиИ1С(ТекущийКонец) Далее
Функция КонецФибоначчиИ1С(ТекущийКонец)
   Если (ТекущийКонец=0) тогда
      Возврат (0);
   ИначеЕсли (ТекущийКонец=1) тогда
      Возврат (1);
   Иначе
      Возврат(КонецФибоначчиИ1С(ТекущийКонец-1)+КонецФибоначчиИ1С(ТекущийКонец-2));
   КонецЕсли;
КонецФункции

Процедура Сформировать()
   КонецФибоначчи=46;
   НачальноеВремя=ТекущееВремя();
   Сообщить(КонецФибоначчиИ1С(КонецФибоначчи));
   КонечноеВремя=ТекущееВремя()-НачальноеВремя;
   Сообщить("Время выполнения: "+КонечноеВремя);
КонецПроцедуры

Так и не дождался конца выполнения:( Поэтому сколько работает ХЗ. Хотя с ошибкой не вылетела и это уже радует.
Записан
RemDerBauer
Rebuild world
Глобальный модератор
*****

Карма: 14
Сообщений: 1886


Ubuntu forever


Награды
« Ответ #46 : 05 Марта 2008, 15:58:13 »

жесть))) скажите своему начальству, что вместо расчета НДС и зарплаты ваши бухгалтера будут считать числа Фибоначчи)))
Записан

Мы говорим Linux, подразумеваем Ubuntu......
denis0k
Продвинутый
***

Карма: 0
Сообщений: 109

Gentoo


Награды
« Ответ #47 : 05 Марта 2008, 20:11:01 »

NWN2 писали старые мастера поделок - обсидианы. У них даже серверная программа требует директ икс, поэтому нет порта на linux. За 2 года уже гиг заплаток, а игра как была дыркой, так и осталась. Наверно стоит заметить также (хоть это и не относится к программированию), что фоновая музыка там - процентов на 90 копипаст из первой части игры. Так что нвн2 - самый неудачный пример тут Улыбка

А консоли не тормозят, т.к. там реально убержелезо, которое будет актуально на протяжении лет этак трех. И рыночная цена консоли гораздо ниже ее себестоимости - там прибыль от дисков идет.
Записан
AleksK
Продвинутый
***

Карма: 2
Сообщений: 220


WinXP, Russian Fedora 10.1


Награды
« Ответ #48 : 05 Марта 2008, 20:17:17 »

А смысл того что тут понаписали. Ели вы реально писали для 1С то должны знать что по техническим причинам там очень не рекомендуется использовать рекурсию (из-за этого время выполнения увеличивается в разы), да она там никогда и не требуется. 1С хороша для бизнес логики, но никак не для математических расчётов. С# это универсальный язык программирования, как впрочем и Pascal, С/С++, Java и многие другие. Я не вижу смысла в приведённых примерах.

А на консолях железо стоит самое обычное, просто игры пишутся именно под это железо, и естественно игру никто не выпустит в продажу если она будет тормозить, тут уже хочешь не хочешь а делай игру по-нормальному. Поглядел я на игры от SP3 ничем выдающимся они не выделяются, графика самая обыкновенная. Я бы ни в коем случае не стал тратить на игру 2000-3000, просто после часа игры мне большинство игр надоедает, так что я не вижу смысла платить за них деньги Улыбка . А джойстик в экшенах это настоящий мазохизм Улыбка
Записан
kaigerda
Юзверь
**

Карма: 0
Сообщений: 33


Награды
« Ответ #49 : 05 Марта 2008, 22:33:22 »

А смысл того что тут понаписали. Ели вы реально писали для 1С то должны знать что по техническим причинам там очень не рекомендуется использовать рекурсию (из-за этого время выполнения увеличивается в разы), да она там никогда и не требуется. 1С хороша для бизнес логики, но никак не для математических расчётов. С# это универсальный язык программирования, как впрочем и Pascal, С/С++, Java и многие другие. Я не вижу смысла в приведённых примерах.
Если есть механизм значит он должен работать. Неужели вам не интересно, что будет с 1с. Там много чего по техническим причинам делать не рекомендуется (запускать под вайном, работать с другими БД, кроме как ДБФ и MS SQL например и т.д.). А смысла в данных примерах особого и нет, просто это своеобразный тест на быстродейсвие.
Записан
AleksK
Продвинутый
***

Карма: 2
Сообщений: 220


WinXP, Russian Fedora 10.1


Награды
« Ответ #50 : 08 Марта 2008, 12:58:18 »

Цитировать
Если есть механизм значит он должен работать. Неужели вам не интересно, что будет с 1с. Там много чего по техническим причинам делать не рекомендуется (запускать под вайном, работать с другими БД, кроме как ДБФ и MS SQL например и т.д.). А смысла в данных примерах особого и нет, просто это своеобразный тест на быстродейсвие.

Не все что не запрещено делать, делать стоит, это вопрос здравого смысла и практики применения.

А качество работы системы не стоит оценивать только по скорости работы. 1С не самая быстрая система, возможно не самая удобная. Но для разработки бизнес решения для мелких и средних фирм по стоимости и по количеству специалистов она вне конкуренции. Возможно вы напиште систему которая будет работать быстрее, но её поддержка вам обойдётся гораздо "дороже" чем поддержка решений от 1С. "Дороже" это не только стоимость разработки, но и время создания готового решения, время отладки, интеграция с другим программным обеспечением, потери от простоя и так далее. Фраймворк даёт некоторую потерю в производительности, но сокращает все остальные потери, гораздо более важные. В этом и есть преимущество С# над C++
Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #51 : 08 Марта 2008, 13:19:35 »


Продолжим мериться пипськами, C# (Mono):
using System;

namespace Test
 {
  public class Fib
   {
    public static int fib(int _n)
     {
      if (_n == 0) {return 0;}
      else if (_n == 1) {return 1;}
      else {return fib(_n-1)+fib(_n-2);}
     }
     
    public static void Main(string[] _args)
     {
      long startTm = Environment.TickCount;
      Console.WriteLine(fib(46));
      long endTm = Environment.TickCount;
     
      Console.WriteLine("Total time: {0}",(endTm-startTm));
     }
   }
 }

Результат (в мс):
1836311903
Total time: 43895

Пример на скала на этой же машинке:
Total time [ms]:29002
Mid time [ms]:29309.2

Машинка: Athlon X2 3600, 2Gb, Ubuntu 7.10, JDK1.6u2, Mono 1.2.4.
Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #52 : 08 Марта 2008, 13:49:54 »

Цитировать
Если есть механизм значит он должен работать. Неужели вам не интересно, что будет с 1с. Там много чего по техническим причинам делать не рекомендуется (запускать под вайном, работать с другими БД, кроме как ДБФ и MS SQL например и т.д.). А смысла в данных примерах особого и нет, просто это своеобразный тест на быстродейсвие.

Не все что не запрещено делать, делать стоит, это вопрос здравого смысла и практики применения.

А качество работы системы не стоит оценивать только по скорости работы. 1С не самая быстрая система, возможно не самая удобная. Но для разработки бизнес решения для мелких и средних фирм по стоимости и по количеству специалистов она вне конкуренции. Возможно вы напиште систему которая будет работать быстрее, но её поддержка вам обойдётся гораздо "дороже" чем поддержка решений от 1С. "Дороже" это не только стоимость разработки, но и время создания готового решения, время отладки, интеграция с другим программным обеспечением, потери от простоя и так далее. Фраймворк даёт некоторую потерю в производительности, но сокращает все остальные потери, гораздо более важные. В этом и есть преимущество С# над C++

C# не фреймворк, а его преимущество перед плюсами состоит в виртуальной машине, которая обеспечивает ему управление памятью, JIT компиляцию и переносимость. Большинство людей не будут трахаться с плюсами, вылавливая бесконечные "Access violation", "Segmentation fault" и пр.
Я например, за три года на жабе уже привык, что все мои проги работают где угодно, что различные непонятные исключения отсутствуют, а те которые вываливаются указвают на место в коде с точностью до строки. Я привык к нормальному профайлеру, который не только покажет что память утекает, но и где были созданы те или иные объекты, и кто держит на них ссылки. На жабе я уверен, что если софтина отстояла под нагрузкой под профайлером 2 дня, то она потом и месяц простоит и не упадет с 14 на 15-ое с непонятной ошибкой (именно с НЕПОНЯТНОЙ - от собственной криворукости защиты еще не придумали). В .NET, который я как раз щас учу, дела в принципе обстоят аналогично (хотя монополия мелкомягких конечно раздражает). На C++/Delphi меня теперь уже не заманишь, разве что под страхом голодной смерти.

P.S. А по поводу одинэса согласен - одинэс рулЕз (хотя г... редкостное)
Записан
kaigerda
Юзверь
**

Карма: 0
Сообщений: 33


Награды
« Ответ #53 : 08 Марта 2008, 15:24:06 »

Ладно, ладно. Напишу в баше ту же функцию, вот только маленько протрезвею:)))) Кстати, девушки, если кто вдруг читает, с праздником. 2mini_root: ты чё седня на работе!?
Записан
kaigerda
Юзверь
**

Карма: 0
Сообщений: 33


Награды
« Ответ #54 : 08 Марта 2008, 15:26:34 »

1с действительно rulezzz, т.к. он (она, оно) кормит армию голодных кодеров и быдлокодеров
Записан
Леголегс
Гуру
******

Карма: 18
Сообщений: 1006


Fedora 12 x86_64


Награды
« Ответ #55 : 08 Марта 2008, 15:33:01 »

Код:
#include <time.h> 
#include <iostream>

using std::cout;
int fib(int n) {
if( n == 0 )
return 0;
else if( n == 1 )
return 1;
else
return fib(n-1)+fib(n-2);
}

int main(int argc, char* argv) {
time_t start_time = time(NULL);
int x = fib(46);
time_t end_time = time(NULL);
cout << "x = " <<  x << std::endl;
cout << "Total time: " << end_time - start_time << std::endl;
return 0;
}
[legolegs@battlehummer fib]$ g++ -Wall -O3 -o fibcpp fib.cpp
[legolegs@battlehummer fib]$ time ./fibcpp
x = 1836311903
Total time: 20

real    0m20.071s
user    0m18.566s
sys     0m0.075s

Ну и чего?
Записан

[ Мой FTP ftp://legolegs.homelinux.net ]
[ Репозиторий Fedora http://fedora.leschat.net/ ]
[ Репозиторий Ubuntu http://ubuntu.leschat.net/ ]
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #56 : 08 Марта 2008, 16:12:47 »

Код:
#include <time.h> 
#include <iostream>

using std::cout;
int fib(int n) {
if( n == 0 )
return 0;
else if( n == 1 )
return 1;
else
return fib(n-1)+fib(n-2);
}

int main(int argc, char* argv) {
time_t start_time = time(NULL);
int x = fib(46);
time_t end_time = time(NULL);
cout << "x = " <<  x << std::endl;
cout << "Total time: " << end_time - start_time << std::endl;
return 0;
}
[legolegs@battlehummer fib]$ g++ -Wall -O3 -o fibcpp fib.cpp
[legolegs@battlehummer fib]$ time ./fibcpp
x = 1836311903
Total time: 20

real    0m20.071s
user    0m18.566s
sys     0m0.075s

Ну и чего?

Ну и ничего! Во-первых ты конфигу машинки не написал, а во-вторых за несколько секунд проигрыша я получаю полную переносимость и все плюшки, которые дает виртуальная машина. Что лишь подтверждает мои слова о преимуществе Java/.NET на реальных прикладных приложениях - там где надо работать с сеткой, файлами или БД. В них ты вообще разницы по скорости не увидишь, а плюшки управляемых языков останутся.
Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #57 : 08 Марта 2008, 16:14:19 »

Ладно, ладно. Напишу в баше ту же функцию, вот только маленько протрезвею:)))) Кстати, девушки, если кто вдруг читает, с праздником. 2mini_root: ты чё седня на работе!?

Леха, ТАК пить нельзя! Подумай о печени! Какие здесь могут быть девушки?!
Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #58 : 08 Марта 2008, 16:15:22 »

Ладно, ладно. Напишу в баше ту же функцию, вот только маленько протрезвею:)))) Кстати, девушки, если кто вдруг читает, с праздником. 2mini_root: ты чё седня на работе!?

Равно как и быдложаба кормит армию быдлоиндусских быдлокодеров Улыбка
Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #59 : 08 Марта 2008, 16:37:07 »


Продолжим мериться пипськами, C# (Mono):

.............

Машинка: Athlon X2 3600, 2Gb, Ubuntu 7.10, JDK1.6u2, Mono 1.2.4.

Он же под MS .NET Framework 2.0:
1836311903
Total time: 36156

Машинка: та же

И кто там что говорил про отсутствие нормального JIT у жабы?
Записан
Страниц: 1 2 3 [4] 5 6   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM