Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 23927|Vastaus: 2

[Lähde] C# toteuttaa prosessimuistin kartoitustiedostojen jakomuistin

[Kopioi linkki]
Julkaistu 7.10.2017 18.51.10 | | |
Muistin kartoitustiedostot käyttävät virtuaalimuistia tiedostojen kartoittamiseen prosessin osoiteavaruuteen, minkä jälkeen prosessi käsittelee tiedostoa samalla tavalla kuin osoite prosessitilassa, esimerkiksi käyttämällä memcpyä ja muita muistitoimintoja C-kielellä. Tätä menetelmää voidaan käyttää hyvin tilanteissa, joissa tiedostoa tai suurta tiedostoa täytyy käsitellä usein ja IO-prosessoinnin tehokkuus on korkeampi kuin tavallisen IO:n
Jaettu muisti on erityistapaus muistikartoitetuille tiedostoille, jotka kartoittavat muistin osan levyllä olevan tiedoston sijaan. Jaetun muistin aiheena on prosessi, ja käyttöjärjestelmä varaa oletuksena muistitilan jokaiselle prosessille, ja jokainen prosessi saa käyttää vain käyttöjärjestelmän sille varaamaa muistia, mutta ei muita prosesseja. Ja joskus täytyy käyttää samaa muistia eri prosessien välillä, mitä pitäisi tehdä? Käyttöjärjestelmä tarjoaa rajapinnan jaetun muistin luomiseen, ja prosessit, joiden täytyy jakaa muistia, voivat käyttää useiden prosessien jakamaa muistia tämän määriteltyjen rajapintojen kautta, ja jokainen prosessi käyttää tätä muistia ikään kuin käyttäisi tiedostoa kiintolevyllä. .Net 4.0 esittelee System.IO. MemoryMappedFiles-nimiavaruus, luokka, joka kapseloi Windowsin jaettuun muistiin liittyvät API:t, tehden .Net-ohjelmoijille helpommaksi käyttää muistikartoitustiedostoja.
Käytä jaettua muistia C#:ssa. Seuraava App1-koodi antaa käyttäjän syöttää rivin tekstiä jaettuun muistiin; App2 päivittää konsolia jatkuvasti ja tuottaa uusinta jaetun muistin sisältöä; App3 toteuttaa samat toiminnot kuin App2, mutta lukutapa on erilainen.

Datan lukemiseen käytettiin kahta menetelmää.
Koska prosessien välistä viestintää käytettiin aiemmin harvoin, tämä menetelmä on vasta alustava ymmärrys. Ohjelma on liian alkeellinen, ja monia asioita ei arvosteta. Esimerkiksi, miten luoda jaettu muisti, miten se haetaan ja poistetaan jne.




Edellinen:.net/c# CryptoJS AES:n salattu lähdekoodi
Seuraava:activemq Persistent store on täynnä
 Vuokraisäntä| Julkaistu 3.10.2025 16.10.57 |
.NET/C# toteuttaa ohjelman singleton, joka perustuu Mutex- ja MemoryMappedFile-tiedostoihin
https://www.itsvse.com/thread-10808-1-1.html

.NET/C# vanhempi-lapsiprosessit kommunikoivat MemoryMappedFile-tiedoston avulla
https://www.itsvse.com/thread-10983-1-1.html
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com