1
我是新來的Scala和阿卡和我跨看起來是這樣的代碼來:有哪些中的對象嵌套的阿卡演員類的類成員的含義是什麼?
object Foo extends App {
class Bar extends Actor with ActorLogging{
val graph: TitanGraph = _
private def setGraph() = {
graph = TitanFactory.open(...)
}
setGraph()
...
}
def startBar() {
val barSystem = ActorSystem("BarSystem")
for(i <- 0 until numActors) {
val barActor = barSystem.actorOf(Props[Bar], name="BarActor" + i)
...
barActor ! Start
}
}
startBar
}
這是否會對性能產生任何影響相比,?:
object Foo extends App {
override def main(args: Array[String]): Unit = {
val barSystem = ActorSystem("BarSystem")
for(i <- 0 until numActors) {
val barActor = barSystem.actorOf(Props[Bar], name="BarActor" + i)
...
barActor ! Start
}
}
}
object Bar {
val graph: TitanGraph = _
private def setGraph() = {
graph = TitanFactory.open(...)
}
setGraph()
def props = Props[Bar]
...
}
class Bar extends Actor with ActorLogging{
...
}
在第一在這種情況下,您創建了圖的多個實例,但在第二種情況下,我假設您正在使用跨工作人員共享的單個實例?
另外,我讀的地方,它是很好的做法,以保持演員的道具廠的同伴對象,但不知道以前的代碼休息演員封裝,或者如果它會影響性能,在所有。
如果你擔心性能,你就應該剖析它。該'Bar'類可能包含對其父對象的引用,但它是非常不可能,這麼小的差異將有什麼樣的任何真實世界的應用顯着的效果。擔心績效成爲問題時,而不是之前。 – lmm 2014-12-03 10:24:06
謝謝!我其實也想知道它對泰坦圖的影響。我問的原因是寫圖表看起來非常昂貴,速度很慢。我不知道這是否是因爲我們有多個實例,並且每次調用圖形對每個I/O他們之間作出選擇,或者如果它是系統的體系結構。我也可以完全脫離基地。 – kodemonkey 2014-12-03 21:02:48
說真的,描述它。 JProfiler有一個免費的試用版。 – lmm 2014-12-03 22:40:38