Lock / Unlock Scroll

11/08/2015 20:23 ​Exo#31
Quote:
Originally Posted by Syloxx View Post
did i said anything about linux?
i mean you compare the cpp module inside the gs with a cs application
i talk about performance so what you think is more performant?
Under normal conditions, I vote for C#! Now let me me be specific so we can have a valid discussion here. I have been spending almost a year on mathematical and algorithmic competitive programming and have worked countless time with both languages. Why C#? NET is easier to use for development phases, raw C# is faster than c++ why? C# JIT almost optimizes everything whilst in C++ you will have to optimize everything [Even simple sortings/searchs/data struct building, just everything. So we it comes to huge applications that are supposed to handle too much data regularly in a parallel manner then if you are not going to write let's say x10 of code as you would do in C++ to each the same performance rates then C# is the way to go. Otherwise, C++ would be faster since it won't go into the same process as C# do with its JIT.
11/08/2015 23:02 Syloxx#32
Quote:
Originally Posted by ​Exo View Post
Under normal conditions, I vote for C#! Now let me me be specific so we can have a valid discussion here. I have been spending almost a year on mathematical and algorithmic competitive programming and have worked countless time with both languages. Why C#? NET is easier to use for development phases, raw C# is faster than c++ why? C# JIT almost optimizes everything whilst in C++ you will have to optimize everything [Even simple sortings/searchs/data struct building, just everything. So we it comes to huge applications that are supposed to handle too much data regularly in a parallel manner then if you are not going to write let's say x10 of code as you would do in C++ to each the same performance rates then C# is the way to go. Otherwise, C++ would be faster since it won't go into the same process as C# do with its JIT.
sure cpp brings alot of work with it but you get alot of benefits with it cross platforming and the end performance is one of the point

and as long as microsoft doenst add native .net for desktop apps i wont use c# in any kind of server proccess.

[Only registered and activated users can see links. Click Here To Register...]

We are talking about server software then we shouldnt think "whats the easiest way to do" we should think like "whats the most secured, stable and performant way to do"
11/08/2015 23:18 ​Exo#33
Quote:
Originally Posted by Syloxx View Post
sure cpp brings alot of work with it but you get alot of benefits with it cross platforming and the end performance is one of the point

and as long as microsoft doenst add native .net for desktop apps i wont use c# in any kind of server proccess.

[Only registered and activated users can see links. Click Here To Register...]

We are talking about server software then we shouldnt think "whats the easiest way to do" we should think like "whats the most secured, stable and performant way to do"
Of course, but that would really matter if this thing is really important and the performance ratios would affect. Here, I don't see the point, we are not rebuilding the modules we're just using some kind of a bridged connection and even after the tons of optimizations you will have to implement from small search functions to socket classes and database connections you will achieve the same results as if another guy did in way less code in C# and you will just get a few ms difference. In this case of not building something that really damages the performance in a way or another the easier option seems more sufficient to me.
11/08/2015 23:21 Syloxx#34
Quote:
Originally Posted by ​Exo View Post
Of course, but that would really matter if this thing is really important and the performance ratios would affect. Here, I don't see the point, we are not rebuilding the modules we're just using some kind of a bridged connection and even after the tons of optimizations you will have to implement from small search functions to socket classes and database connections you will achieve the same results as if another guy did in way less code in C# and you will just get a few ms difference. In this case of not building something that really damages the performance in a way or another the easier option seems more sufficient to me.
might be, but if you want easy code go with python :)
if u use iron python its a .net based framework you wont get any performance difference to c# so why should i use c# if i could write it in python way easier?

now dont say "easy GUI" who the hell want GUI on a server?
11/08/2015 23:34 ​Exo#35
Quote:
Originally Posted by Syloxx View Post
might be, but if you want easy code go with python :)
if u use iron python its a .net based framework you wont get any performance difference to c# so why should i use c# if i could write it in python way easier?

now dont say "easy GUI" who the hell want GUI on a server?
Have you checked the performance ratio of C# to IronPython? I guess not cuz it's too hight (in this case you take it into account since it's noticable).

Another reason is because most projects in the last few years were in C# so in case of a reference need, it makes sense to use C# instead of having to recode everything again.

*IronPython has extra compilation processes not like other .NET since iPy is interpreted.
11/09/2015 00:58 Syloxx#36
Quote:
Originally Posted by ​Exo View Post
Have you checked the performance ratio of C# to IronPython? I guess not cuz it's too hight (in this case you take it into account since it's noticable).

Another reason is because most projects in the last few years were in C# so in case of a reference need, it makes sense to use C# instead of having to recode everything again.

*IronPython has extra compilation processes not like other .NET since iPy is interpreted.
nope, i didnt checked the performance from ironpython to c# got it just by reading anyway you went really offtopic

the topic was: "why using a packet filter if everything can be done inside the database"
11/09/2015 03:57 ​Goofie​#37
Quote:
Originally Posted by Syloxx View Post
nope, i didnt checked the performance from ironpython to c# got it just by reading anyway you went really offtopic

the topic was: "why using a packet filter if everything can be done inside the database"
Filter is better, less load and you can prevent them before it happening "db side". Just get the "slot" numbers and then read the "INVENTORY_MOVE" packet,

if the slot.contains(list) && this.locked
sendnotice:
continue;

Easy peasy.
11/09/2015 06:03 Syloxx#38
Quote:
Originally Posted by ​Goofie​ View Post
Filter is better, less load and you can prevent them before it happening "db side". Just get the "slot" numbers and then read the "INVENTORY_MOVE" packet,

if the slot.contains(list) && this.locked
sendnotice:
continue;

Easy peasy.
well, what is so bad if it happen db side?
and in SQL is more easy

Code:
IF @Serial64 or @ItemID (dont know whats used on the queries) EXISRS IN (SELECT * FROM _ConfigLockedItems WHERE ItemID = @ItemID | OR Serial64 @Serial64)
RETURN -x
info be4 you guys cry:
return doenst disconnect the client every time it depens on the return value :)

another info:
its FORBITTEN to select , update , insert or delete in C programation just calling procedures is allowed (yes, i know "but joymax..." ye but joymax shared the files with the world so) so what you wanna do?
make a XML file and update it on every usage, hardcode all the items or storage it sql side with an sql procedure?
11/09/2015 09:58 ​Goofie​#39
Quote:
Originally Posted by Syloxx View Post
well, what is so bad if it happen db side?
and in SQL is more easy

Code:
IF @Serial64 or @ItemID (dont know whats used on the queries) EXISRS IN (SELECT * FROM _ConfigLockedItems WHERE ItemID = @ItemID | OR Serial64 @Serial64)
RETURN -x
info be4 you guys cry:
return doenst disconnect the client every time it depens on the return value :)

another info:
its FORBITTEN to select , update , insert or delete in C programation just calling procedures is allowed (yes, i know "but joymax..." ye but joymax shared the files with the world so) so what you wanna do?
make a XML file and update it on every usage, hardcode all the items or storage it sql side with an sql procedure?
Never said it was bad, just unprofessional, example would be "+ing" and item, if you success +11 and your maxplus is +10, you need teleport before the item's plus changes back to +10, with a filter you can prevent them from doing it +11.

Also SQL queries will result in more DB load, more DB shit needed etc, Silkroad is already unstable when it comes to the DB and its load.

My goal with life is to make servers stable, stop the 300 rows of coding inside the SQL just to check one thing, the less queries running in your SQL the more speed you have for the basic stuff. So 0 sql usage 2k15 braw.
11/09/2015 10:47 classicman702#40
good job , keep up the good work mate
11/09/2015 12:02 Syloxx#41
Quote:
Originally Posted by ​Goofie​ View Post
Never said it was bad, just unprofessional, example would be "+ing" and item, if you success +11 and your maxplus is +10, you need teleport before the item's plus changes back to +10, with a filter you can prevent them from doing it +11.

Also SQL queries will result in more DB load, more DB shit needed etc, Silkroad is already unstable when it comes to the DB and its load.

My goal with life is to make servers stable, stop the 300 rows of coding inside the SQL just to check one thing, the less queries running in your SQL the more speed you have for the basic stuff. So 0 sql usage 2k15 braw.
sure, in thos case a packet filter the besser choise because gameserver updates the item in _Items

but move / delete / exchange is done by a procedure.
so simply add a new check to these procedures and done

this check will be just 1 check under 10,000 inside the shard database so whats so special on that check to outsource it to a filter? :)

or you will outsouce every check example "username exists check" :D

and nope... silkroad isnt unstable sql related how should this be possible
all the exploits are binary related :)

and i prefer 3 more lines in an procedure instad of keep running a additional proccess wich play arround with my traffic

"how i said befor in my opinion a packet filter should send the traffic without any detours to the agentserver exception: the opcode itself is black listed (exploit for example)"

this guaranteed more stability and way less performance issues.
just check pioneer, Manuel had so many problems with filters and tought all the time its my fault but i setup every propper with the 1st setup the problem was all the time a packet filter.

since the Manuel uses the packetfilter like i said apporove there is no issues :) a packetfilter slow down the performance thats sure but the art is it to keep the performance lose as less as possible and well thats not possible if you add like 10000 features to a packetfilter

the SQL server is way faster in this case :)

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

just googled a bit and well the most ppl agree with me :P
11/09/2015 14:43 ​Goofie​#42
Quote:
Originally Posted by Syloxx View Post
sure, in thos case a packet filter the besser choise because gameserver updates the item in _Items

but move / delete / exchange is done by a procedure.
so simply add a new check to these procedures and done

this check will be just 1 check under 10,000 inside the shard database so whats so special on that check to outsource it to a filter? :)

or you will outsouce every check example "username exists check" :D

and nope... silkroad isnt unstable sql related how should this be possible
all the exploits are binary related :)

and i prefer 3 more lines in an procedure instad of keep running a additional proccess wich play arround with my traffic

"how i said befor in my opinion a packet filter should send the traffic without any detours to the agentserver exception: the opcode itself is black listed (exploit for example)"

this guaranteed more stability and way less performance issues.
just check pioneer, Manuel had so many problems with filters and tought all the time its my fault but i setup every propper with the 1st setup the problem was all the time a packet filter.

since the Manuel uses the packetfilter like i said apporove there is no issues :) a packetfilter slow down the performance thats sure but the art is it to keep the performance lose as less as possible and well thats not possible if you add like 10000 features to a packetfilter

the SQL server is way faster in this case :)

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

just googled a bit and well the most ppl agree with me :P
By the way "manuel" is using SUPERMAN.
11/10/2015 06:26 Syloxx#43
Quote:
Originally Posted by ​Goofie​ View Post
By the way "manuel" is using SUPERMAN.
might be but then he turned of all the features
i asked him if I am allowed to use his hyperfilter during my beta of VSRO 274 and if its possible to setup it as proxy only and he said "yes, thats what i am doing currently"

anyway we went to offtopic, SQL is a way better method then packet filter in this case and done

i also posted by idea how to improve that system so if someone wanna do it go ahead :)
11/10/2015 15:59 Timlock#44
Quote:
Originally Posted by Syloxx View Post
might be but then he turned of all the features
i asked him if I am allowed to use his hyperfilter during my beta of VSRO 274 and if its possible to setup it as proxy only and he said "yes, thats what i am doing currently"

anyway we went to offtopic, SQL is a way better method then packet filter in this case and done

i also posted by idea how to improve that system so if someone wanna do it go ahead :)
You are right that T-SQL May be faster in small amounts, however you are not taking in to consideration by modifying vsro stored procedures you are adding a workload every time those procedures are called which in turn adds nanosecond delays to every gameserver / shardmanager function that calls on them. Especially logging procedures.
11/11/2015 18:53 RedStormOnline#45
thanks you bro