Kohėt e fundit implementova nė njė program timin aftėsinė pėr ti bėrė auto-update vetvetes. Pėrveē modifikimit tė vetė programit, kjo kėrkonte qė edhe serveri tė asistojė nė kėtė proces.
Siti ėshtė implementuar nė ASP.NET MVC, por unė nuk jam njohės shumė i mirė i C#, kėshtu qė herė mbas here ndeshja vėshtirėsi, zgjidhjen e tė cilave e kėrkoja nė google, kryesisht tek www.stackoverflow.com.
Dhe nė shumė raste, pėrveē zgjidhjes qė kėrkoja, ndeshja nė pohime tė tipit C# mund tė ekzekutohet po aq shpejtė sa C++, madje edhe mė shpejtė, sepse JIT mund ta optimizojė kodin nė varėsi tė procesorit host, apo C# mund tė optimizohet mė shumė se C++, sepse nuk ka problem me aliasing (pėr shkak tė pointerave) siē ka C/C++, pėr mė tepėr JIT zotėron mė shumė informacion lidhur me intencionet e programit.
Unė nuk besoj se Sun apo Microsoft krijuan pėrkatėsisht Java dhe.NET ngaqė ishin tė pakėnaqur me performancėn e programeve C/C++. Gjithsesi, pėr tė krijuar njė ide, vendosa tė bėj njė eksperiment duke shkruar njė program tė thjeshtė nė C# dhe C++ (Java nuk kam):
Nė kompjuterin tim, versioni nė C# ekzekutohet rreth 4 herė mė ngadalė se ai nė C++.
Siē e thashė, unė nuk e njoh mirė C# dhe penalizmi mund ti detyrohej faktit qė se kam shkruar mirė. Kėshtu qė sėrish kėrkova nė Google pėr tė parė se si mund ta optimizoja dhe ndėr tė tjera mėsova se performanca mund tė rritej duke e deklaruar funksionin unsafe dhe duke pėrdorur pointera (nė C#) me anė tė keyword-it fixed.
Gjithsesi, as kėto pėrpjekje spatėn ndonjė rezultat.
Kėshtu qė po e shtroj si ushtrim kėtu nė forum: ndokush njė njeh mė mirė C# (apo VB.NET... apo Java) mund tė ofrojė njė version mė tė optimizuar.
Versioni nė C++ ėshtė ky:
Kodi:
#define _WIN32_WINNT NTDDI_WINXPSP2
#define WIN32_LEAN_AND_MEAN
#include
#include
#include "stopwatch.h"
#include
#include
#include
#include
#pragma optimize ("t", on)
int _tmain(int argc, _TCHAR* argv[])
{
const int buffsize = 10;
__int64 progresion = 0;
std::vector<__int64> buffer(buffsize);
intein::Stopwatch timer;
for (int i = 0; i <= 0x1FFFFFFF; i++)
{
progresion += i;
buffer[i % buffsize] += progresion;
}
timer.Stop();
printf ("progresion: %I64u\r\nkoha: %d\r\n\r\n", progresion, timer.ElapsedMilliseconds());
for (int i = 0; i < buffsize; i++)
printf ("%s%016I64x ", i % 4 ? "" : "\r\n", buffer[i]);
printf ("\r\n\r\n");
_getch();
return 0;
}
#pragma optimize ("", on)
Ndėrsa ai nė C# ėshtė ky:
Kodi:
using System;
namespace csharp1
{
class Program
{
static unsafe void Main(string[] args)
{
const int buffsize = 10;
Int64 progresion = 0;
Int64[] buffer = new Int64[buffsize];
System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch();
//fixed (Int64* pBuffer = buffer)
{
timer.Restart();
for (int i = 0; i <= 0x1FFFFFFF; i++)
{
progresion += i;
buffer[i % buffsize] += progresion;
//*(pBuffer + i % buffsize) += progresion;
}
timer.Stop();
}
System.Console.Write("progresion: {0}\nkoha: {1}\n\n", progresion, timer.ElapsedMilliseconds);
for (int i = 0; i < buffsize; i++)
System.Console.Write("{0}{1:x16} ", i % 4 != 0 ? "" : "\n", buffer[i]);
System.Console.Write("\n\n");
System.Console.ReadKey();
}
}
}
Linku i bashkangjitur i pėrmban tė dy projektet si dhe nga njė version tė kompiluar tė tė dy programeve.
Krijoni Kontakt