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

正文內(nèi)容

drools使用手冊第六--十章(留存版)

2025-01-07 16:38上一頁面

下一頁面
  

【正文】 s = ( list )。在規(guī)則引擎方面,不用考慮,它當(dāng)然會盡可能的達(dá)到最好的執(zhí)行效率。經(jīng)過索引,如果在一個新的 Person 對象之前只有他的一個兄弟 Person 對象存在,則它只要匹配這一個對象就行了,避免了其它 999次失敗嘗試。發(fā)生這種情況的原因在 Manners 64 中很容易看出,左輸入索引的消耗大于可以獲得的好處。如果每個客戶平均有 50個規(guī)則, 4 萬客戶就會有 200 萬條規(guī)則。在 ruleset 較小的例子中,使用,使用硬編碼可能對性能有輕微的提高。 當(dāng)大多數(shù)規(guī)則共享同樣的條件時,有兩種解決方案。 項目地址: 第 9 章 . 部署與測試 . 部署選項 一旦將規(guī)則集成在你 的應(yīng)用中,你需要激活如何將規(guī)則與你的應(yīng)用一起部署。長期運行的 working memory 對于復(fù)雜的應(yīng)用來說是很有用的,規(guī)則引擎隨時增加庫中的知識,用來對實際情況進(jìn)行輔助決策(在這些例子中,展現(xiàn)了引擎的動態(tài)特性)。如果存在的 Working Memory 需要動態(tài)改變規(guī)則,最好還是部署 Package 對象。當(dāng)然你可以使用不同的技術(shù)去完成。測試可以提供一個信心底線,規(guī)則的改變是否與系統(tǒng)相容,可以從測試中了解。因為建立在 FIT 上,它需要一個不同的認(rèn)證,但也是開源的。在我的實際實現(xiàn)中會使用更長的標(biāo)記 39。 Clips Reference Manual Jess 只有兩種策略,深度和寬度,它討論的問題與 Clips 文檔中的相同。 [譯者注:該處含義需要理解下面的規(guī)則代碼才能明白,保留原文 This rule determines each of the Seating arrangements. The Rule creates cross product solutions for ALL asserted Seating arrangements against ALL the asserted guests。 Clips Support Forum 早期的 版本,實現(xiàn)深度算法,當(dāng)出現(xiàn)激活規(guī)則有相同的優(yōu)先級并且依靠隨意激發(fā)時無法工作,意味著有著低 pid 的座位先激發(fā)。更晚一點版本的 Drools 已經(jīng)從 BetaNode 內(nèi)存中移除了 HashMap,開始依靠 Lex 風(fēng)格的鄰近性策略代而使用 LinkedLists 根據(jù) Fact 設(shè)置的順序來控制LIFO(看起來更像是 Clips 的 manner)。基于與建立路徑要比完成路徑先執(zhí)行的同樣原因, Continue 規(guī)則要比 Are We Down 規(guī)則優(yōu)先執(zhí)行。 Drools ReteOO 目前沒有實現(xiàn)這些優(yōu)化,雖然預(yù)編譯優(yōu)化在下一個版本中會進(jìn)行研究。但是它也可能內(nèi)部優(yōu)化,這可以從 Leaps 算法看到; Drools 有一個實驗性質(zhì)的實現(xiàn)。這是因為完成路徑規(guī)則修改了上下文環(huán)境,并且刪除了建立路徑規(guī)則所產(chǎn)生的激活規(guī)則。 }。 Clips 支持,通過公共論壇,稱 Manner 是: [譯者注:上一段的翻譯不太清晰,保留原文 The creation of all these redundant Activations might seem pointless, but it must be remembered that Manners is not about good rule design。 ( )。 Clips Reference Manual Clips 能夠指定 LEX 和 MEA 策略以及其它策略,但是默認(rèn)的是使用深度策略,它是 LEX 的 Recency 鄰近性策略的一個實現(xiàn)。數(shù)據(jù)是簡單的 5 個客人,他們將會被男女相鄰而坐,并且有同樣的愛好。 同樣因為測試文檔不是代碼,它們可以隨著規(guī)則不斷更新,用來確定變更規(guī)則的有效性。 . 測試 在這些年,測試驅(qū)動開發(fā)成為了主流,作為這種技術(shù) 帶給軟件開發(fā)的價值已經(jīng)被確認(rèn)。 在進(jìn)程外使用 PackageBuilder 類,然后使用 getPackage()獲得 Package 對象。 Package 對象是可以序列化的,因此它們可以在網(wǎng)絡(luò)上發(fā)送,或綁定到 JNDI,Session 等等。這本質(zhì)上是一個無狀態(tài)模式。依賴于 ruleset 的情況,系統(tǒng)可能需要更多內(nèi)存。另一個常見問題是使用了大量的扁平化對象。假設(shè)我們運行一個百萬級的 在線商店,客戶可以在每一個分類(書,影碟,音樂,玩具,電子產(chǎn)品,服裝等等)中定義他們自己的喜好。 ? 是否規(guī)則有很多常量值被硬編碼在條件中 ? 是否域模型有一個超過 100 列的巨大電子表格 ? 是否絕大多數(shù)規(guī)則共享相同條件 ? 是否邏輯可以被分解到不同階段 如果你對這 4 個問題的任何一個可以給出肯定答復(fù),那也許有機(jī)會通過改變規(guī)則來解決問題。 Manners 64 無索引 : 135000 毫秒運行時間 Manners 64 使用 BetaNode 索引 : 10078 毫秒運行時間 顯然在建立索引上花費的時間遠(yuǎn)遠(yuǎn)小于為運行時帶來的性能收益 。 解決問題的一個方法是在元素到達(dá) BetaNode 內(nèi)存時對元素進(jìn)行索引,這樣不需要為了發(fā)現(xiàn)匹配而遍歷相對內(nèi)存中的所有元素。 global list rule FindSisters when $person1 : Person ( $name1:name ) $person2 : Person ( $name2:name ) eval( $($person2) ) then ($() + and + $() + are sisters)。 例 . 無狀態(tài)規(guī)則 (StatelessRuleSession) session = ( uri, null, )。 ( source, drl )。和 ( null )。 Drools 需要暴露出更多的功能,像全局變量, DRL、 DSL 支持, Xml 屬性映射等等,因為 JSR94 提供的功能集合是非?;镜奶匦?。第二部分是運行時 Session,用來執(zhí)行這些 RuleExecutionSet。 // 為 DRL 建立 RuleExecutionSet RuleExecutionSet ruleExecutionSet = ( drlReader, null )。 When registering a RuleExecutionSet you must specify the name, to be used for its retrieval. There is also a field to pass properties, this is currently unused so just pass null. 例 . Register the RuleExecutionSet // 使用 RuleAdministrator 注冊 RuleExecutionSet String uri = ()。 . 全局變量 通過使用屬性映射傳入 RuleSession 的工廠方法, JSR94 可以通過使用一種非輕便的方式支持全局變量。大多數(shù)人不需要關(guān)注這章的細(xì)節(jié)。 Drools 正如上面所說的實現(xiàn)了對 BetaNode 的索引,以提高性能。因此如果我們反過來,啟用右輸入索引而關(guān)閉左輸入索引,我們獲得下面結(jié)果: Manners 64 僅使用 BetaNode 右輸入內(nèi)存索引 : 8765 毫秒運行時間 現(xiàn)在我們獲得了最佳效果。讓我們使用更具體的例子說明: If == peter == level2 == jackie chan Then remend movies with jackie chan If == peter == level2 == jet li Then remend movies with jet li 查看示例,第一個問題是“這些規(guī)則是 否應(yīng)用到所有 Customer”,如果確認(rèn)是,則規(guī)則中的第一個條件 是無意義的。為什么會這樣?讓我們看一下兩種不同的規(guī)則 引擎:流程型( procedural)和 Rete 算法型 在一個流程型引擎中,一旦數(shù)據(jù)無法滿足在給定級別上的條件,引擎可以建立一個決策樹并且結(jié)束評估。最好的辦法是使用鏈接重寫規(guī)則。規(guī)則的特點是用來允許應(yīng)用程序的改變而不用重新部署整個應(yīng)用。 . DRL 和 PackageDescr 一種辦法是將規(guī)則部署為源碼格式。 RuleBase, RuleBaseLoader . Serializing 序列化 事實上在 Drools 中所有與 RuleBase 有聯(lián)系的對象都是可序列化的。 . Pull 拉風(fēng)格 在這種方法中,規(guī)則從規(guī)則庫中被拉到運行系統(tǒng)中。當(dāng)然,規(guī)則的改變也可能就是會引起測試的錯誤,這種情況下需要編寫新的測試來覆蓋新的規(guī)則行為。你可以下載并獲得更多的資料,通過這個 Web 頁面: Fit for rules 下面的頁面顯示 FIT 規(guī)則框架的截圖 使用規(guī)則 FIT,你可以捕捉測試數(shù)據(jù),將它傳遞到規(guī)則引擎,然后確認(rèn)結(jié)果(使用測試組建文檔)。leftGuestName39。當(dāng)Manners 小姐起初在 中使用深度策略時,不能產(chǎn)生正確的結(jié)果,這意味著它會無限運行下去。 accept against itself or any already assigned Chosen solutions.] rule assignSeat() { when { context : Context( state == ) Seating( seatingId:id, seatingPid:pid, pathDone == true seatingRightSeat:rightSeat seatingRightGuestName:rightGuestName ) Guest( name == seatingRightGuestName, rightGuestSex:sex, rightGuestHobby:hobby ) Guest( leftGuestName:name , sex != rightGuestSex, hobby == rightGuestHobby ) count : Count() not ( Path( id == seatingId, guestName == leftGuestName) ) not ( Chosen( id == seatingId, guestName == leftGuestName, hobby == rightGuestHobby) ) } then { int newSeat = rightSeat + 1。一個 Lex風(fēng)格的鄰近性策略被實現(xiàn),并且這個基準(zhǔn)正確工作。因此在 Drools 中 Manners 可以工作,但是偶然才能產(chǎn)生結(jié)果,用戶不能對此有任何期望。 rule areWeDone() { when { context : Context( state == ) LastSeat( lastSeat: seat ) Seating( rightSeat == lastSeat ) } then { ( )。這些優(yōu)化使得 Manners 小姐的基準(zhǔn)變成多余的,并且在這個 manner 中建立一個最適宜的系統(tǒng)的結(jié)果將被考慮避免。 所有上面的是外部最優(yōu)化,這些情況容易發(fā)現(xiàn)并且使得結(jié)果無效。當(dāng) Manners 在 CLIPS 中使用寬度( breadth)策略執(zhí)行時,如果完成路徑在建立路徑之前激發(fā),它將陷入一個無限的循環(huán)。 struct genericMatch binds[1]。雖然深度策略的執(zhí)行是任意的,但 Manners 對于 Jess 和 Clip在使用深度策略后正確的執(zhí)行。 ( () + 1 )。如果一 個激活規(guī)則擁有比其它激活規(guī)則更多的模式實體,而它們的時間標(biāo)簽相同,則更多模式實體的放在前面。 圖 . Manners 活動圖 . 數(shù)據(jù)和結(jié)果 在深入研究規(guī)則 之前,讓我們先看一下設(shè)置的數(shù)據(jù)以及最后安排的位置結(jié)果。因為測試被保存在文檔中,這些方法和需求能夠被保存在同樣的文檔中,為規(guī)則行為的提供一個單獨的真實性約束。 . 未來的期望 Drools 的將來版本將提供一個規(guī)則庫組件,將直接支持以上的摸式,以及更多。它也意味著所有編譯錯誤可以在部署到運行系統(tǒng)前獲得并處理。 RuleBase 保存著 Package 的列表,并且合并到其中一個 Package,你需要知道哪一個是你需要合并的 Package(顯然,只有在同樣包名中的規(guī)則可以被合并)。這個 rulebase 可以被線程共享,每個線程中產(chǎn)生新的 working memory 來處理事務(wù)(然后 working memory 被拋棄)。這 意味著使用
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1