I have been asked to improve the memory efficiency of an application that is used for high speed data acquisition. After running the VS memory profiler several times and scanning the projects for obvious issues I came to the following conclusion: despite using a fixed size circular buffer for storing acquired sample points, the RAM usage increases relative to the polling period. For example: polling data for one signal at 2 microseconds can use 5 times more memory (private bytes) than when running at 50 microseconds ... even though the buffer size is the same.
The circular buffer is an array of SamplePoint objects. Each of these objects contains an array of Shorts (16 bit) for corresponding data per signal and one date object (8 bytes) for the time stamp. For efficiency, the circular buffer is Redimmed only once every time it begins polling and filled with empty sample points which are then "assigned".
Also, it seems that when we stop and run the application it hogs even more memory each time as though the Redim is not releasing the previous array. My questions boil down to the following: What is most memory efficient way of implementing a circular buffer containing managed objects which have arrays?Also, how and why is memory usage increasing with a fixed size array with different polling speeds? Does the garbage collector not have time? Do local variables get disposed of IMMEDIATELY when a sub or function exits?These are some of the doubts and concerns that I would like to rule out before proceeding.
How can I create a circular buffer on the heap in VB.NET ? This would be used for audio playback via P/Invoke to winmm.dll waveoutopen and waveoutwrite to support development of a software synth. I currently use the marshall class to build a regular array of bytes in the heap.
I use the following code (with Imports Microsoft.DirectX.DirectSound and Microsoft.DirectX) to play sound using an 8 second static buffer:
Dim SD As Device = New Device SD.SetCooperativeLevel(Me.Handle, CooperativeLevel.Priority) Dim MS As New IO.MemoryStream(Gbuffer) ' Gbuffer is byte array with properly formatted WAV data Dim waveFormat As New WaveFormat waveFormat.SamplesPerSecond = 44100 [Code] .....
What I would like to do next is to change to a "circular" or "streaming" buffer so that I can write new data "on the fly". I've done a lot of Googling but can't quite see how to adapt my present code to use a circular buffer. I can get the current write and play positions using Msb.GetCurrentPosition(iPlayPos, iWritePos) but how do I actually insert new data into the buffer? I have tried "manually" writing new data into my Gbuffer byte array but that doesn't work - I guess once a sound has been played through once, the data is cached somewhere and the contents of Gbuffer are not used again.
I'm having some doubts on which communication protocol/platform would be better for my current development. The focus is on communication performance, and while reliability matters, I can handle a some packet loss. UDP sounds like the correct choice, but then the following question came up:
"What would be better, using a UDP socket directly in .NET, or using a UDP socket implemented in unmanaged C++ with a wrapper to .NET?"I'm quite sure that C++ is faster than .NET, and while the communication might be faster, I'm not sure if that performance improvement is not lost with all the C++-to-.NET wrapping?
Some info about the project I'll be using this on:
- The core of the project will be all made in VB.NET.
- There'll be a high packet sending/receiving volume (about 100-200/sec).
- There'll be many clients requesting data to the server.
- Network communication will be over a GB-LAN.
- Data is time sensitive, and some packet loss is accepted.
This is my code for retrieving pictures, it was working before but then i accidentally deleted the table and i created it again with the same name and same fields. and now whenever i open the form with the picture, there was a message box error. it says Buffer cannot be null. Parameter name: buffer I don't know what i did wrong.
How do i exactly check internet connection speed.I have searched around google and found out a method w/c will Download a file like 1mb size, then it will calculate the speed.
I have a codes that calculates DownLoad speed and UpLoad speed kb/s. I would like to implement this kind. I also want to put such kind of graph. Any article or links where can I start building my own like that.
I have to make a learning object program for a school project and i am doing it about circular motion and satellite orbits.how i can get a object to orbit around another object in visual basic, allowing the orbit radius to vary as the user inputs values?
Assuming an architecture as such.MODEL > BLL > DLL
Trying to implement lazy loading in my MODEL I have run into a circular dependency between my MODEL and BLL..Basically imagine a property in my model that I want to implement as follows
Public Readonly Property ProjectCategory As ProjectCategory Get If Me._ProjectCategory Is Nothing Then Me._ProjectCategory = ProjectCategoryBLL.GetProjectCategoryByID(Me._ProjectCategoryID) End If
[Code]...
I have my MODEL, BLL and DLL in separate projects and because of the fact that my BLL references my model I can not reference my BLL from my model as this would create a circular dependency.
my team is working on an application where we have to have one image which is acting as the base of all the elements on the screen.. and this same image has a transparency in the center. now this centre transparency is supposed to display a picture which will be captured from a web cam.currently everything working fine but the only problem which we are facing is that the picture is not proportionate to what is the actual resolution that it was shot at. it has been stretched from the top and bottom. the reason is that the imagebox which has been used to call this webcam display is a aquare.now it seems that the team is not being able to use the exact proportions of the image to call it in the picturebox for a reason that the final image needs to be cropped to fit in a circle.in simple words, i have a rectangular image and i want to draw a circle over this image. whatever is within the circle should be visible, whatever is outside the circle should be transparent. (a mask needs to be created...)but the only thing is that this circle will first display the image/video from the web camera and only once the picture is clicked, it should show the same picture within this circular area.
I have created a TextBox array where certain cells are assigned a number which I do not want the operator to change either intentionally or inadvertantly.The relevant TextBox cells are identified by their BackColor, (in this case LightBlue)If the cell is changed the original content is immediately assigned to the cell and a relevant message is displayed.My problem is that by changing the value back to its original value I create another TextChanged event and the consequence is that the MsgBox is displayed twice, one after the other.I have avoided the problem by not displaying a message box. The outward appearance is that the TextBox is not changed at all, which of course is my aim.However I would prefer to display a message box.An example of the scenario is shown below.
Another bewildering fact, (to me), is that in the example below, if the check is not made of the BackColor but instead the value of the TextBox the problem doesn't occur
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged If TextBox1.BackColor = Color.LightBlue Then[code]...
In the example above, if in the Text_Changed event handler the 'Remark' is changed from one 'If' statement to the other the differences in the result can be seen.
I'm working on creating my own sudoku solver to learn vb.net. I decided to have an element class which represents a single square in the puzzle. That element then has references to three lists which can be validated (no duplicate numbers). The three lists then would be its corresponding row/column/subGrid. Each list then holds a reference to 9 elements. Thus in my design an element has a reference to a list, which then holds a reference to that same element. Now vb.net will allow me to do this so I don't think it is the same issue that I saw when searching for solutions to circular referencing. However, I still wonder whether or not this is bad design.
I have a button which opens FormTest. When FormTest opens, it creates an instance of ClassTest and that class instance takes the form instance that called it (FormTest) so that it can perform operations on FormTest from the ClassTest class instance. So i have a form which owns an instance of a class which has a reference to the form.
There is a question that I have from YEARS after working with DotNetBar Components that How do you set the Marquee style of a normal progress bar on the circular one? The circular progress bar from DotNetBar, i want to be clear.There is no "Style" Property and now I really need to know it for a project I'm doing now
I've got a requirement where I need to calculate a value, however also refer to this value when calculating it. So I've got for example[code]...
I can see how this can be achieved in excel using Circular Reference, however I'm not sure how I go about it when using VB.Net. Is there a similar method to create a Circular Reference as in excel or any other way I can possibly work out the TotalValue?
I have a class that is in an assembly due to being required for other projects that I'm currently working on. One class lets call it Class Factory, creates a group of controls which require click event handlers to be attached, I have algorithms which determine polymorphic behavior based on certain features but that is relatively irrelevant.
Due to the event handler having to open up a specific form that isn't part of my assembly, and that form requiring this "Factory" class. Without creating circular reference is there any way I can essentially "delegate" the handler event for the form to define? As a simple work around I have had to maintain two separate classes, one in the project with the form and one in the assembly.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Width = 1500 Dim panel As New Panel panel.Location = New Point(0, 0) panel.Size = New Size(1000, 200) [Code] .....
I'm implementing some custom serialization (to byte array), and have run into a problem handling circular references.Example:
Class A public MyBs as new List(of B) End class
Class B public MyParent as A public MiscInt1 as integer[code]....
If I know that an instance of B will only ever be serialized through the serialization of an instance of A, then I can handle the setup of the MyParent reference from the instance of A and not even record that information inside the byte buffer for the instance of B.This doesn't feel quite right, but it might be the best solution.
So in Visual Studio, you can't have two projects X and Y such that X references Y and Y references X.In general, I can totally understand how having a circular dependency can be problematic, for a variety of reasons.But is it really not possible to compile two projects that are interdependent in this way? It seems to me that it must be possible, since (in my mind -- maybe I'm completely off-base about this) having two mutually dependent assemblies is really not so different from having two mutually dependent classes -- a case which is legal and can be compiled.
It would make sense to me if you said, "two assemblies cannot depend on each other because the compiler could not compile one before the other"; except that it seems you could make the same argument for two classes within the same assembly, and clearly the compiler can deal with this scenario just fine.
Basically the reason I'm asking is not that I have some desperate desire to do this thing that I know is generally ill-advised anyway. Specifically I'm wondering because it would be nice if I could have two projects -- say, MyProjectCS and MyProjectVB -- that existed basically as two mutually dependent parts of a single unit, and were only separate because certain parts were written in C# and other parts were written in VB.NET.
Is it possible to enable this behavior (in Visual Studio, or elsewhere, for that matter)? If it's not possible within any IDE, it it at least theoretically possible, or could mutually dependent assemblies not possibly exist? If it's not even theoretically possible, why not? In other words, how are mutually dependent assemblies different from mutually dependent code within a single assembly?
UI references Functionality to call specific functions. Functionality needs to call certain functions that operate UI. This is what I mean by Duplex communication. Is there any way to do this without causing circular dependency?Should there be 1 main project which simply does all the calling acting as a "wrapper" between UI and Functionality?
Role Public Class Role Public Property RoleID As Integer Public Property CreatedBy As User
[code]....
The situation is like when we create roles, we will save who created this role. So i have a CreatedBy Property of type User. Similarly when we create a User, we will mention what role the new user belongs to .So i have a property called "Role" of type "Role". This circular reference giving me StackOverflow exception as its recursive when i create an object of User class.How do i handle this ? should i restucture my entties ? how ?
I have a theory that the CLR garbage collection mechanism means that I can get away with circular references in my object hierarchy without creating deadlocks for teardown and garbage collection. Is this a safe assumption to make? (Target language VB.NET)