freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

drools使用手冊第六--十章-免費閱讀

2024-12-10 16:38 上一頁面

下一頁面
  

【正文】 這個觀點之前也被 James Own 提出過,他發(fā)表了 20202020 Benchmarks。 [譯者注:原文如下 Removing the context so the rule engine matches the guests and seats prematurely. A proper port will prevent facts from matching using the context start.] ? 任何可以阻止規(guī)則引擎執(zhí)行組合模式匹配的改變 ? 如果沒有 fact 在論證循環(huán)中被刪除,作為一個非條件元素的結(jié)果,接口是不正確的。 } } rule continue() { Context context。如果一個系統(tǒng)不依靠鄰近性,并且規(guī)則定義的順序不影響執(zhí)行,那么 Rete 網(wǎng)絡(luò)建立的過程必須以這樣的一種方式連接 —— 確認(rèn)最復(fù)雜的規(guī)則最后被執(zhí)行,一種內(nèi)建的復(fù)雜度策略,但這是不公開的,這樣通過 LIFO 最初建立的激活規(guī)則將最后激發(fā)。仍然不知道 Jess 怎樣處理這種情況, Peter Lin 相信 Jess 可能有一些簡單的未公開的 fact 鄰近性解決方案。 struct partialMatch *next。這留下了問題, Jess 和 Clips 如何工作 ,即使是偶然可以工作。使用 OPS5 和 LEX,它可以根據(jù)最后被設(shè)置的座位正確激發(fā)規(guī)則。 ( new Seating( countValue, id, false, (), rightSeat, rightSeatName, newSeat, leftGuestName)。 ( new Path( (), 1, guestName ) )。該論文使用兩種規(guī)則引擎討論 Manners 小姐的行動,Clips 和 Jess,以及它們?nèi)绾问顾ぷ?,以及?Drools 中如何工作。在 Agenda 中時間最晚的激活規(guī)則放在最前面。我發(fā)現(xiàn)左和右的標(biāo)記更適合 OPS5( Texas 大學(xué)的論文)中的 Manners 和 Waltz。 Manners 使用一個上下文實例來控制執(zhí)行流程;下面的泳道活動圖規(guī)則執(zhí)行與當(dāng)前上下文狀態(tài)的關(guān)系。期望在將來, Drools 服務(wù)工具可以為測試提供一個類似的集成框架(單元格的底色,綠色意味成功,紅色意味失?。?。它利用一個表格層捕捉輸入數(shù)據(jù),并且通過對一個RuleSet 中的規(guī)則根據(jù)給定的 Fact 進行判斷有效性。在測試驅(qū)動開發(fā)的方式中,測試需要經(jīng)常運行,在一個規(guī)則驅(qū)動的環(huán)境中,這意味著每次規(guī)則改變都應(yīng)該運行測試(甚至軟件本身沒有任何變化)。希望在將來的版本中,可以有一種自動的工具將規(guī)則暴露為Web 服務(wù)(可能使用 XSD 作為 fact 來給規(guī)則操作)。規(guī)則庫可以是一個簡單的文件系統(tǒng),或是一個數(shù)據(jù)庫。進程外構(gòu)建的主要好處是,運行時系統(tǒng)可以最少的依賴運行規(guī)則所需的庫(只有一個 jar)。為了讓W(xué)orkingMemory 可序列化,你設(shè)置的所有對象也必須可序 列化。 RuleBase然后就能統(tǒng)治 working memory 新的規(guī)則 的存在(因為 RuleBase 保存著對由它產(chǎn)生的 working memory 的弱引用)。這種辦法依賴于運行時引擎(必需包含編譯器組件)去編譯規(guī)則,并建立 rulebase。 . 可發(fā)布對象 RuleBase, Package 等 在最簡單的情況下,你可以編譯和構(gòu)造一個 rulebase,然后緩存這個 rulebase。這意味著規(guī)則必須作為應(yīng)用的數(shù)據(jù)提供,而不是應(yīng)用的部分(如嵌入 classpath 中)。那在 ruleset規(guī)模過大,重寫規(guī)則又不可行時還有什么辦法呢? 僅有的辦法是擴展硬件并使用一個不同的 JVM。識 別常用條件,并將它選取到通用的規(guī)則中。s not possible to presort. If we use a RETE rule engine, the hard coded rules result in fewer joins for a small number of rules. As the rule count grows, the single rule will perform better. The equation to estimate the threshold where the generalized form is faster than hard coding the constants.] bn = 關(guān)聯(lián)節(jié)點 , lf = left facts, rf = right facts, ae = 對于隨機樣本的對象類型節(jié)點進行遞減評估的平均數(shù) [譯者注:原文如下average number of evaluation descending from the object type node for a random sample], f = facts, hd = 規(guī)則中的硬編碼常量 , general = 通用格式使用的連接數(shù) general( sum( bn(lf * rf) ) + sum(ae * f) ) hd( sum( bn(lf * rf) ) + sum(ae * f) ) 對這兩種方式的最佳量化方法是通過兩種方式編寫規(guī)則,并運行系列測試。當(dāng)規(guī)則數(shù)量增加時,流程引擎有許多的規(guī)則需要評估。這也是 Rete 路徑通常被稱為“數(shù)據(jù)驅(qū)動路徑”的原因之一。因為所有的規(guī)則的這個類型都有該條件。 第一件事情是考慮為什么有如此多規(guī)則,是否可以通過重寫規(guī)則來解決問題。對于 Manners 64 來說,最佳方案是關(guān)閉左索引,保留右索引。為了通過一些數(shù)據(jù)讓我們可以更好的理解它,將使用“ Manners 64 benchmark”測試用例在“ Pentium IV 3 Ghz HT 1GB memory”的機器上的執(zhí)行情況來說明問題。 BetaNode 索引是默 認(rèn)啟用的,用戶通常不需要去擔(dān)心它。 如下圖所示: 圖 . Beta Node 當(dāng)在 BetaNode 內(nèi)存中的元素數(shù)量越來越多時,匹配過程開始變慢,因為每一個到達的新元素需要為給定的約束在相對的內(nèi)存中嘗試匹配所有元素。 注意,當(dāng)程序員第一次使用規(guī)則引擎時,最應(yīng)當(dāng)注意的“花費”應(yīng)當(dāng)是規(guī)則引擎的啟動(它將編譯規(guī)則)。 不要忘記在你的 DRL 中聲明 list 全局變量 : package SistersRules。全局變量必須定義在 DRL 或 XML 文件的開始,否則會拋出異常。 ()。 (uri, ruleExecutionSet, null)。 // 為 dsl 建立讀取流,并放入屬性映射中 URL dslUrl = new URL( Reader dslReader = new InputStreamReader( () )。 在上例中 ( reader, null )為屬性映射提供了一個空參數(shù);無 論怎樣,它實際上可以用來為引入的源提供配置。RuleExecutionSetProvider 從可序列化的源中裝載 RuleExecutionSet,如 DOM元素或包。 . 創(chuàng)建與注冊 RuleExecutionSet RuleServiceProviderManager 對注冊進行管理,并返回 RuleServiceProvider。 應(yīng)當(dāng)記住的是, JSR94 標(biāo)準(zhǔn)描述了不同規(guī)則引擎特性的“最小公分母”,這個意思是說 JSR94 API 中的功能要比 Drools API 提供的功能要少。因此在 JSR94 中你不能應(yīng)用 Drools 規(guī)則引擎的全部功能。Drools 的 RuleServiceProvider 實現(xiàn)在類被使用 裝載時自動注冊通 過一個靜態(tài)模塊注冊,在大多數(shù)情況下 JDBC 驅(qū)動也使用同樣的方式。 ( null )。當(dāng) Null 傳入時,默認(rèn)裝載的輸入是 DRL。 Map properties = new HashMap()。 . 使用有狀態(tài)和無狀態(tài) RuleSession 在運行時, RuleServiceProvider 用來建立有狀態(tài)或無狀態(tài)的規(guī)則引擎 Session。 StatelessRuleSession 有一個非常簡單的 API,你只能調(diào)用 executeRules(List list)傳入對象列表,以及一個可選的過濾器,然后結(jié)果列表被返回。屬性映射的鍵為在 drl 或 xml 聲明的變量名,值是你希望在執(zhí)行中使用的值。 import 。這個問題很容易解決,將 RuleBase(或已編譯好的RulePackage)實例緩存起來,并且僅僅只更新需要的規(guī)則(在應(yīng)用中有許多方法可以實現(xiàn)它,這里不再討論)。當(dāng)數(shù)千個Fact 被設(shè)置到 working memory 中時,這將變成一個嚴(yán)重的限制。雖然,在某些特殊情況下,用戶可能受限于系統(tǒng)內(nèi)存或其它原因不想啟用索引功能,索引可以單獨在各內(nèi)存上被禁止,通過設(shè)置如下的系統(tǒng)屬性: 例 : ..當(dāng)你在啟動應(yīng)用時 =false =false . 索引性能調(diào)整 理解當(dāng)索引啟用時發(fā)生了什么的一個好辦法是分析數(shù)據(jù)庫系統(tǒng)。這里的并不是一個詳細(xì)的基準(zhǔn)測試,只是一些簡單的概括,使得你更容易理解。 . 重新安排約束條件順序 另一個提高性能辦法的提示是,當(dāng)編寫規(guī)則時,盡量將嚴(yán)格的約束條件放在相對不嚴(yán)格的約束條件前面。有很多問題可以尋找。雖然 accountId 更改了,規(guī)則可以有效地忽略它。讓我們在這個示例上更進一步,定義 customer 的 type屬性從 level1 到 level10。在一個程序路徑上,規(guī)則必須按照最佳的順序排列,以獲得最好的結(jié)果。大多數(shù)項目有嚴(yán)格的計劃,開發(fā)者通常不可能有時間這樣做。通用的規(guī)則通過設(shè)置一個新的 fact 觸發(fā)后來的規(guī)則。這 意味著使用 64 位 JVM 在一臺至少 8GB 內(nèi)存的機器上。 規(guī)則引擎為規(guī)則部署開放了很多選項。這個 rulebase 可以被線程共享,每個線程中產(chǎn)生新的 working memory 來處理事務(wù)(然后 working memory 被拋棄)。一個類似的方法是部署 PackageDescr對象,這意味著規(guī)則被預(yù)先解析好(對語法錯誤),但是沒有被編譯成二進制格式。 RuleBase 保存著 Package 的列表,并且合并到其中一個 Package,你需要知道哪一個是你需要合并的 Package(顯然,只有在同樣包名中的規(guī)則可以被合并)。因此它通??梢赃M行遠程發(fā)布,并且綁定規(guī)則到 JNDI 中,就像在容器中使用它們一樣。它也意味著所有編譯錯誤可以在部署到運行系統(tǒng)前獲得并處理。拉規(guī)則的觸發(fā)器可以是一個定時任務(wù)(檢查變更),或一個發(fā)到運行時系統(tǒng)的請求(可能使用 JMX 接口)。 . 未來的期望 Drools 的將來版本將提供一個規(guī)則庫組件,將直接支持以上的摸式,以及更多。 . 測試框架 對應(yīng)程序員來說, Junit(或 TestNG)是開發(fā)測試代碼的常用工具,它們也可以用來測試規(guī)則。因為測試被保存在文檔中,這些方法和需求能夠被保存在同樣的文檔中,為規(guī)則行為的提供一個單獨的真實性約束。訪問 獲得更多關(guān)于 FIT 框架信息。 圖 . Manners 活動圖 . 數(shù)據(jù)和結(jié)果 在深入研究規(guī)則 之前,讓我們先看一下設(shè)置的數(shù)據(jù)以及最后安排的位置結(jié)果。 (guest (name n1) (sex m) (hobby h1) ) (guest (name n2) (sex f) (hobby h1) ) (guest (name n2) (sex f) (hobby h3) ) (guest (name n3) (sex m) (hobby h3) ) (guest (name n4) (sex m) (hobby h1) ) (guest (name n4) (sex f) (hobby h2) ) (guest (name n4) (sex f) (hobby h3) ) (guest (name n5) (sex f) (hobby h2) ) (guest (name n5) (sex f) (hobby h1) ) (last_seat (seat 5) ) 結(jié)果 [Seating id=1, pid=0, done=true, ls=1, ln=n5, rs=1, rn=n5] [Seating id=2, pid=1, done=false, ls=1, ln=n5, rs=2, rn=n4] [Seating id=3, pid=2, done=false, ls=2, ln=n4, rs=3, rn=n3] [Seating id=4, pid=3, done=false, ls=3, rn=n3, rs=4, rn=n2] [Seating id=5, pid=4, done=false, ls=4, ln=n2, rs=5, rn=n1] . 深度研究 . 沖突解決 簡單來說, manners 是一個深度優(yōu)先或 LIFO 示例。如果一 個激活規(guī)則擁有比其它激活規(guī)則更多的模式實體,而它們的時間標(biāo)簽相同,則更多模式實體的放在前面。 . 分配第一個座位 一旦上下文環(huán)境變更為 START_UP,為所有設(shè)置的 Guest 建立的激活規(guī)則就完成了,因為所有激活規(guī)則作為單個 Working Memory動作
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1