国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種資源數(shù)據(jù)共享方法、服務(wù)器及系統(tǒng)的制作方法_2

      文檔序號:9263472閱讀:來源:國知局
      器及系統(tǒng),預(yù)先配置資源配置文件,讀取所述資源配置文件中的所述預(yù)設(shè)的鍵值和所述索引名稱;根據(jù)所述預(yù)設(shè)的鍵值向操作系統(tǒng)請求內(nèi)存空間創(chuàng)建共享內(nèi)存;從磁盤中將所述索弓I名稱所對應(yīng)的資源數(shù)據(jù)加載到所述共享內(nèi)存,向同一臺物理機(jī)的各個場景服務(wù)器的進(jìn)程共享所述資源數(shù)據(jù)。同一臺物理機(jī)的各個場景服務(wù)器的進(jìn)程共享內(nèi)存從磁盤中所加載的所述資源數(shù)據(jù),所述資源數(shù)據(jù)無需被各個不同的場景服務(wù)器的進(jìn)程從磁盤中重復(fù)加載,也無需重復(fù)占用物理機(jī)給各個場景服務(wù)器所分配的物理內(nèi)存,節(jié)省物理機(jī)的內(nèi)存空間,提高物理機(jī)的利用率。
      【附圖說明】
      [0054]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0055]圖1為本發(fā)明一種資源數(shù)據(jù)共享方法實施例一流程圖;
      [0056]圖2為本發(fā)明一種資源數(shù)據(jù)共享方法實施例二流程圖;
      [0057]圖3為本發(fā)明一種資源數(shù)據(jù)共享方法實施例三流程圖;
      [0058]圖4為本發(fā)明一種資源加載服務(wù)器結(jié)構(gòu)實施例四示意圖;
      [0059]圖5為本發(fā)明一種場景服務(wù)器結(jié)構(gòu)實施例五示意圖;
      [0060]圖6為本發(fā)明一種資源數(shù)據(jù)共享系統(tǒng)實施例六示意圖;
      [0061]圖7為本發(fā)明一種資源加載服務(wù)器實施例七結(jié)構(gòu)示意圖;
      [0062]圖8為本發(fā)明一種資源加載服務(wù)器實施例八結(jié)構(gòu)示意圖。
      【具體實施方式】
      [0063]本發(fā)明公開了一種資源數(shù)據(jù)共享方法、服務(wù)器及系統(tǒng),資源加載服務(wù)器將同一物理機(jī)的各個場景服務(wù)器的進(jìn)程所需的相同的邏輯數(shù)據(jù)作為資源數(shù)據(jù)加載到其所創(chuàng)建的共享內(nèi)存,向所述各個場景服務(wù)器共享所述資源數(shù)據(jù),提高物理機(jī)的利用率。
      [0064]下面結(jié)合附圖對本發(fā)明實施例進(jìn)行詳細(xì)說明。
      [0065]實施例一
      [0066]圖1為本發(fā)明一種資源數(shù)據(jù)共享方法實施例一流程圖,應(yīng)用于資源加載服務(wù)器,描述了共享內(nèi)存創(chuàng)建的方法,所述方法包括:
      [0067]步驟101:預(yù)先配置資源配置文件。
      [0068]所述資源配置文件包括預(yù)設(shè)的鍵值和資源數(shù)據(jù)的索引名稱,所述資源數(shù)據(jù)為同一個物理機(jī)的各個場景服務(wù)器的進(jìn)程所需的相同的邏輯數(shù)據(jù)。
      [0069]鍵值主要是用于識別創(chuàng)建的共享內(nèi)存的,在配置文件中預(yù)先設(shè)置好鍵值作為標(biāo)識共享內(nèi)存的標(biāo)識,可以根據(jù)預(yù)設(shè)的鍵值訪問此鍵值所標(biāo)識的共享內(nèi)存。
      [0070]所述資源數(shù)據(jù)為同一個物理機(jī)上的各個場景服務(wù)器的進(jìn)程所需的相同的邏輯數(shù)據(jù),包括策劃配置數(shù)據(jù)、美術(shù)資源數(shù)據(jù)和地圖資源數(shù)據(jù)等,所述資源數(shù)據(jù)為靜態(tài)只讀數(shù)據(jù)。除了資源數(shù)據(jù)以外,同一個物理機(jī)的各個場景服務(wù)器的進(jìn)程在運(yùn)行期間還需加載運(yùn)行數(shù)據(jù),所述運(yùn)行數(shù)據(jù)為動態(tài)讀寫數(shù)據(jù),各個場景服務(wù)器所需的動態(tài)數(shù)據(jù)各不相同。這里需要說明的是,各個場景服務(wù)器與資源加載服務(wù)器并不是不同的硬件服務(wù)器,各個場景服務(wù)器是位于同一個物理機(jī)上的處理不同網(wǎng)絡(luò)游戲中非全局性邏輯數(shù)據(jù)的軟件程序。資源加載服務(wù)器也是在所述物理機(jī)上創(chuàng)建共享內(nèi)存的軟件程序。
      [0071]所述資源數(shù)據(jù)的索引名稱主要用于標(biāo)識所需加載的資源數(shù)據(jù),以便加載邏輯數(shù)據(jù)時,從磁盤中準(zhǔn)確的加載各個場景服務(wù)器所需的共同的邏輯數(shù)據(jù)。
      [0072]步驟102:讀取所述資源配置文件中的所述預(yù)設(shè)的鍵值和所述索引名稱。
      [0073]資源加載服務(wù)器讀取預(yù)設(shè)的資源配置文件中的所述預(yù)設(shè)的鍵值和所述索引名稱,資源加載服務(wù)器是指安裝在互聯(lián)網(wǎng)數(shù)據(jù)中心(Internet DataCenter, IDC)的硬件上,可以根據(jù)預(yù)設(shè)的鍵值創(chuàng)建共享內(nèi)存,并將磁盤中的資源數(shù)據(jù)加載到共享內(nèi)存的應(yīng)用程序。
      [0074]步驟103:根據(jù)所述預(yù)設(shè)的鍵值向操作系統(tǒng)請求內(nèi)存空間創(chuàng)建共享內(nèi)存。
      [0075]符合可移植操作系統(tǒng)接口(PortableOperating System Interface,P0SIX)標(biāo)準(zhǔn)的操作系統(tǒng)都提供了共享內(nèi)存(Shared Memory)功能,可以通過一個鍵值創(chuàng)建一塊共享內(nèi)存,當(dāng)創(chuàng)建進(jìn)程退出時,所創(chuàng)建的共享內(nèi)存不會和進(jìn)程一起刪除。創(chuàng)建好的共享內(nèi)存可以向多個進(jìn)程共享內(nèi)存中的數(shù)據(jù)。
      [0076]資源加載服務(wù)器根據(jù)所讀取的資源配置文件中的預(yù)設(shè)的鍵值創(chuàng)建一個共享內(nèi)存,操作系統(tǒng)接收到資源加載服務(wù)器的請求后,給其分配一塊物理內(nèi)存空間作為共享內(nèi)存,所述共享內(nèi)存以預(yù)設(shè)的鍵值作為標(biāo)識。
      [0077]步驟104:從磁盤中將所述索引名稱所對應(yīng)的資源數(shù)據(jù)加載到所述共享內(nèi)存,向同一臺物理機(jī)上的各個場景服務(wù)器的進(jìn)程共享所述資源數(shù)據(jù)。
      [0078]資源加載服務(wù)器按照從資源配置文件中所讀取的資源數(shù)據(jù)的索引名稱,將同一臺物理上的各個場景服務(wù)器的進(jìn)程所需的相同的資源數(shù)據(jù)加載到所創(chuàng)建的共享內(nèi)存。則所述資源數(shù)據(jù)從磁盤中加載一次即可,向所述物理機(jī)的各個場景服務(wù)器的進(jìn)程共享加載到共享內(nèi)存中的資源數(shù)據(jù)。
      [0079]現(xiàn)有技術(shù)中,由于每個場景服務(wù)器的進(jìn)程的邏輯數(shù)據(jù)彼此相互獨(dú)立,每個場景服務(wù)器的進(jìn)程在運(yùn)行時所需的相同的邏輯數(shù)據(jù)(即資源數(shù)據(jù))都在物理機(jī)給各個場景服務(wù)器所分配的物理內(nèi)存中占有內(nèi)存空間,每個場景服務(wù)器的進(jìn)程都需要從磁盤中加載所述資源數(shù)據(jù)。所述資源數(shù)據(jù)被重復(fù)的從磁盤中加載到物理機(jī)中,假設(shè)一組資源數(shù)據(jù)所占的內(nèi)存為8G,有3個場景服務(wù)器,則現(xiàn)有技術(shù)中,各個場景服務(wù)器的進(jìn)程啟動時,每個場景服務(wù)器的內(nèi)存空間都存儲有8G的所述資源數(shù)據(jù),則所述資源數(shù)據(jù)一共占有物理機(jī)的24G的物理內(nèi)存。
      [0080]而使用本發(fā)明所提供的一種資源數(shù)據(jù)共享方法,將所述資源數(shù)據(jù)從磁盤加載到共享內(nèi)存中,所述資源數(shù)據(jù)只需要加載一次即可,并且只占用物理機(jī)的8G的物理內(nèi)存空間,與現(xiàn)有技術(shù)相比,節(jié)省了 16G的物理內(nèi)存空間,并且減少了相同的資源數(shù)據(jù)從磁盤中的加載次數(shù)。共享內(nèi)存中的資源數(shù)據(jù)可以向3個場景服務(wù)器的進(jìn)程共享。節(jié)省出的物理內(nèi)存空間可以部署更多的場景服務(wù)器,提高游戲服務(wù)器邏輯數(shù)據(jù)的處理能力。
      [0081]進(jìn)一步的,向各個場景服務(wù)器的進(jìn)程共享所述資源數(shù)據(jù)具體實現(xiàn)方式為:
      [0082]當(dāng)各個場景服務(wù)器的進(jìn)程通過所述預(yù)設(shè)的鍵值訪問所述共享內(nèi)存時,將所述資源數(shù)據(jù)映射到各個場景服務(wù)器的內(nèi)存空間。
      [0083]各個場景服務(wù)器的進(jìn)程可以根據(jù)預(yù)設(shè)的鍵值訪問所述鍵值所標(biāo)識的共享內(nèi)存,共享內(nèi)存中的所述資源數(shù)據(jù)會映射到各個場景服務(wù)器的內(nèi)存空間,各個場景服務(wù)器的進(jìn)程可以從其內(nèi)存空間中讀取所述資源數(shù)據(jù)。由于所述資源數(shù)據(jù)從所述共享內(nèi)存中映射到各個場景服務(wù)器的內(nèi)存空間,并不占用各個場景服務(wù)器的物理內(nèi)存空間,這樣可以節(jié)省物理機(jī)的物理內(nèi)存空間。
      [0084]可選的,從磁盤中將所述索引名稱所對應(yīng)的資源數(shù)據(jù)加載到所述共享內(nèi)存后,還包括:
      [0085]設(shè)置一個信號量并創(chuàng)建與所述信號量對應(yīng)的信號量鍵值,所述信號量的初始值與所述物理機(jī)上所運(yùn)行的場景服務(wù)器的進(jìn)程的個數(shù)相同;
      [0086]將所述信號量根據(jù)所述信號量鍵值存儲至操作系統(tǒng)的內(nèi)存空間,以便所述各個場景服務(wù)器的進(jìn)程根據(jù)所述信號量鍵值從所述操作系統(tǒng)的內(nèi)存空間檢測所述信號量,當(dāng)所述信號量存在,且對所述信號量執(zhí)行wait操作成功后,執(zhí)行進(jìn)程啟動。
      [0087]資源加載服務(wù)器設(shè)置的信號量的初始值與所述物理機(jī)上所運(yùn)行的場景服務(wù)器的進(jìn)程的個數(shù)相同,同時創(chuàng)建一個與所述信號量對應(yīng)的信號量鍵值,根據(jù)所述信號量鍵值向操作系統(tǒng)請求內(nèi)存空間存儲所述信號量。信號量鍵值是所述信號量存儲的內(nèi)存空間的標(biāo)識,可以根據(jù)所述信號量鍵值可以訪問所存儲的信號量。
      [0088]各個場景服務(wù)器的進(jìn)程會從所述資源加載服務(wù)器獲得所述信號量鍵值,每隔一段時間,根據(jù)所述信號量鍵值檢測所述信號量,當(dāng)所述信號量存在,對所述信號量執(zhí)行wait操作成功后,執(zhí)行進(jìn)程啟動。Wait操作是操作系統(tǒng)的一個通用操作指令,對所述信號量執(zhí)行wait操作,是對信號量執(zhí)行減I的操作,并返回所述信號量不為O的響應(yīng),各個場景服務(wù)器接收到所述信號量不為O的響應(yīng)時,執(zhí)行進(jìn)程啟動。當(dāng)所有場景服務(wù)器的進(jìn)程都啟動后,所述信號量為0,此時無法檢測到信號量。
      [0089]這種方法可以實現(xiàn)各個場景服務(wù)器的進(jìn)程在共享內(nèi)存加載所述資源數(shù)據(jù)后再進(jìn)行啟動,各個場景服務(wù)器的進(jìn)程才能通過預(yù)設(shè)的鍵值訪問共享內(nèi)存中的所述資源數(shù)據(jù),實現(xiàn)先加載資源數(shù)據(jù)再訪問資源數(shù)據(jù)的先后執(zhí)行
      當(dāng)前第2頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1