![]() | |
![]() |
| | Thread Tools | Search this Thread | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hello; I am trying to write a c# .net code where no GC un-timed memory operation. the purpose of which is to allow the code to be responsive in real time as possible. what are the steps to talk in selecting type of objects and variable. do we use a single class for the program? how to make all structures and variables persistence not subject to GC? what makes a method or functions persistence not subject to GC? thank you -- elwolv |
#3
| |||
| |||
|
|
The construct you're looking for is called a Constrained Execution Region. It's not quite what you want, but it's likley very close. Documentation: http://msdn2.microsoft.com/en-us/library/ms228973.aspx MSDN Article on the topic: http://msdn.microsoft.com/msdnmag/is...y/default.aspx .... Note: This isn't suitable for an entire application, but rather regions of code. If that's your goal, you should use C++ or Delphi, as a managed language (.Net, Java) isn't going to cut it. -- Chris Mullins "elwolv" <elwolv (AT) discussions (DOT) microsoft.com> wrote in message news:F985B6ED-4E0A-4557-9A04-FD967DA9AC54 (AT) microsoft (DOT) com... Hello; I am trying to write a c# .net code where no GC un-timed memory operation. the purpose of which is to allow the code to be responsive in real time as possible. what are the steps to talk in selecting type of objects and variable. do we use a single class for the program? how to make all structures and variables persistence not subject to GC? what makes a method or functions persistence not subject to GC? thank you -- elwolv |
#4
| |||
| |||
|
|
Hello; thank you for your reply. I understand your comment. gc can not be disabled and c# managed clr will kick in when it is become needed (out of my control) and .net can not be made real time response restate my question: there are structures that is persistence in memory and GC does not collect and remove. what is would be recommended to use such structures in simple c# program to make gc has no need to collect memory, if all the objects are persistence? thank you -- elwolv "Chris Mullins [MVP - C#]" wrote: The construct you're looking for is called a Constrained Execution Region. It's not quite what you want, but it's likley very close. Documentation: http://msdn2.microsoft.com/en-us/library/ms228973.aspx MSDN Article on the topic: http://msdn.microsoft.com/msdnmag/is...y/default.aspx .... Note: This isn't suitable for an entire application, but rather regions of code. If that's your goal, you should use C++ or Delphi, as a managed language (.Net, Java) isn't going to cut it. -- Chris Mullins "elwolv" <elwolv (AT) discussions (DOT) microsoft.com> wrote in message news:F985B6ED-4E0A-4557-9A04-FD967DA9AC54 (AT) microsoft (DOT) com... Hello; I am trying to write a c# .net code where no GC un-timed memory operation. the purpose of which is to allow the code to be responsive in real time as possible. what are the steps to talk in selecting type of objects and variable. do we use a single class for the program? how to make all structures and variables persistence not subject to GC? what makes a method or functions persistence not subject to GC? thank you -- elwolv |
#5
| |||
| |||
|
|
The question is easy to answer: Make the Static. This will put them on the high frequency heap, and they won't ever be collected. .... now, with that said, this is probably pretty silly. What are you building that you think GC will just wreck? Given you level of knowledge about .Net, I would guess you haven't tried any of this yet, and are shooting in the dark. If this is the case, you may want to step back and take a bigger look at things. Figure out your performance and latency requirements, and from there determine if you can use .Net or not. In the best case, you're guilty of waaaaay premature optimization, and you're going to make things worse rather than better. -- Chris Mullins "elwolv" <elwolv (AT) discussions (DOT) microsoft.com> wrote in message news 8AC3945-1FEE-4D4F-87C1-AF0B5D3A9044 (AT) microsoft (DOT) com...Hello; thank you for your reply. I understand your comment. gc can not be disabled and c# managed clr will kick in when it is become needed (out of my control) and .net can not be made real time response restate my question: there are structures that is persistence in memory and GC does not collect and remove. what is would be recommended to use such structures in simple c# program to make gc has no need to collect memory, if all the objects are persistence? thank you -- elwolv "Chris Mullins [MVP - C#]" wrote: The construct you're looking for is called a Constrained Execution Region. It's not quite what you want, but it's likley very close. Documentation: http://msdn2.microsoft.com/en-us/library/ms228973.aspx MSDN Article on the topic: http://msdn.microsoft.com/msdnmag/is...y/default.aspx .... Note: This isn't suitable for an entire application, but rather regions of code. If that's your goal, you should use C++ or Delphi, as a managed language (.Net, Java) isn't going to cut it. -- Chris Mullins "elwolv" <elwolv (AT) discussions (DOT) microsoft.com> wrote in message news:F985B6ED-4E0A-4557-9A04-FD967DA9AC54 (AT) microsoft (DOT) com... Hello; I am trying to write a c# .net code where no GC un-timed memory operation. the purpose of which is to allow the code to be responsive in real time as possible. what are the steps to talk in selecting type of objects and variable. do we use a single class for the program? how to make all structures and variables persistence not subject to GC? what makes a method or functions persistence not subject to GC? thank you -- elwolv |
#6
| |||
| |||
|
|
hello; thank you for your response. I am trying to use .met MF to issue motor control commands commands can't be delayed for GC action. Since GC is the system in .net MF it is the one who use/steals cycles from the cpu. By using static we can help continuous stream of commands without any un-timed GC latency. yes; .net MF/XP are not real time system and only windows CE/Linux are real time OS., However, .net MF CLR is the OS to be concern on the system. my question now would be: 1- is there any specific technique for CLR (known to you as more knowledgeable) to be used in this manner to help keep the commands flow without interruption? 2- short of using real time OS, I want to use .net MF; because it is easy to use and less time consuming and is really a good way to use embedded MCU. then what is the best ways to do that with the understanding, that we can't make .net MF a complete zero latency? there is enough RAM to hold a program. thank you -- elwolv "Chris Mullins [MVP - C#]" wrote: The question is easy to answer: Make the Static. This will put them on the high frequency heap, and they won't ever be collected. .... now, with that said, this is probably pretty silly. What are you building that you think GC will just wreck? Given you level of knowledge about .Net, I would guess you haven't tried any of this yet, and are shooting in the dark. If this is the case, you may want to step back and take a bigger look at things. Figure out your performance and latency requirements, and from there determine if you can use .Net or not. In the best case, you're guilty of waaaaay premature optimization, and you're going to make things worse rather than better. -- Chris Mullins "elwolv" <elwolv (AT) discussions (DOT) microsoft.com> wrote in message news 8AC3945-1FEE-4D4F-87C1-AF0B5D3A9044 (AT) microsoft (DOT) com...Hello; thank you for your reply. I understand your comment. gc can not be disabled and c# managed clr will kick in when it is become needed (out of my control) and .net can not be made real time response restate my question: there are structures that is persistence in memory and GC does not collect and remove. what is would be recommended to use such structures in simple c# program to make gc has no need to collect memory, if all the objects are persistence? thank you -- elwolv "Chris Mullins [MVP - C#]" wrote: The construct you're looking for is called a Constrained Execution Region. It's not quite what you want, but it's likley very close. Documentation: http://msdn2.microsoft.com/en-us/library/ms228973.aspx MSDN Article on the topic: http://msdn.microsoft.com/msdnmag/is...y/default.aspx .... Note: This isn't suitable for an entire application, but rather regions of code. If that's your goal, you should use C++ or Delphi, as a managed language (.Net, Java) isn't going to cut it. -- Chris Mullins "elwolv" <elwolv (AT) discussions (DOT) microsoft.com> wrote in message news:F985B6ED-4E0A-4557-9A04-FD967DA9AC54 (AT) microsoft (DOT) com... Hello; I am trying to write a c# .net code where no GC un-timed memory operation. the purpose of which is to allow the code to be responsive in real time as possible. what are the steps to talk in selecting type of objects and variable. do we use a single class for the program? how to make all structures and variables persistence not subject to GC? what makes a method or functions persistence not subject to GC? thank you -- elwolv |
#7
| |||
| |||
|
|
hello; thank you for your response. I am trying to use .met MF to issue motor control commands commands can't be delayed for GC action. Since GC is the system in .net MF it is the one who use/steals cycles from the cpu. By using static we can help continuous stream of commands without any un-timed GC latency. |
|
yes; .net MF/XP are not real time system and only windows CE/Linux are real time OS., However, .net MF CLR is the OS to be concern on the system. my question now would be: 1- is there any specific technique for CLR (known to you as more knowledgeable) to be used in this manner to help keep the commands flow without interruption? 2- short of using real time OS, I want to use .net MF; because it is easy to use and less time consuming and is really a good way to use embedded MCU. then what is the best ways to do that with the understanding, that we can't make .net MF a complete zero latency? there is enough RAM to hold a program. thank you -- elwolv "Chris Mullins [MVP - C#]" wrote: The question is easy to answer: Make the Static. This will put them on the high frequency heap, and they won't ever be collected. .... now, with that said, this is probably pretty silly. What are you building that you think GC will just wreck? Given you level of knowledge about .Net, I would guess you haven't tried any of this yet, and are shooting in the dark. If this is the case, you may want to step back and take a bigger look at things. Figure out your performance and latency requirements, and from there determine if you can use .Net or not. In the best case, you're guilty of waaaaay premature optimization, and you're going to make things worse rather than better. -- Chris Mullins "elwolv" <elwolv (AT) discussions (DOT) microsoft.com> wrote in message news 8AC3945-1FEE-4D4F-87C1-AF0B5D3A9044 (AT) microsoft (DOT) com...Hello; thank you for your reply. I understand your comment. gc can not be disabled and c# managed clr will kick in when it is become needed (out of my control) and .net can not be made real time response restate my question: there are structures that is persistence in memory and GC does not collect and remove. what is would be recommended to use such structures in simple c# program to make gc has no need to collect memory, if all the objects are persistence? thank you -- elwolv "Chris Mullins [MVP - C#]" wrote: The construct you're looking for is called a Constrained Execution Region. It's not quite what you want, but it's likley very close. Documentation: http://msdn2.microsoft.com/en-us/library/ms228973.aspx MSDN Article on the topic: http://msdn.microsoft.com/msdnmag/is...y/default.aspx .... Note: This isn't suitable for an entire application, but rather regions of code. If that's your goal, you should use C++ or Delphi, as a managed language (.Net, Java) isn't going to cut it. -- Chris Mullins "elwolv" <elwolv (AT) discussions (DOT) microsoft.com> wrote in message news:F985B6ED-4E0A-4557-9A04-FD967DA9AC54 (AT) microsoft (DOT) com... Hello; I am trying to write a c# .net code where no GC un-timed memory operation. the purpose of which is to allow the code to be responsive in real time as possible. what are the steps to talk in selecting type of objects and variable. do we use a single class for the program? how to make all structures and variables persistence not subject to GC? what makes a method or functions persistence not subject to GC? thank you -- elwolv |
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
| |