我不是3D或HPC人员,但我的任务是对可能的HPC应用程序进行一些研究.读取nVidia Quadro和Geforce卡之间的基准,比较和规格,似乎对于类似的代卡:
有谁知道可以导致这种更好性能的确切和精确的技术差异是什么?我的推测(以及通常可以在网上阅读的内容),因为硬件具有相似的规格,所以它都在驱动程序中.如果是这样的话,Quadro驱动程序提供了哪些功能,3ds Max和其他程序员可以利用这些功能?
当然,我对营销说话不感兴趣:更高的商业价值,专业导向,更好的支持,更好的质量保证等等......
有没有办法阻止Twisted reactor自动吞咽异常(例如NameError)?我只是想让它停止执行,并在控制台中给我一个堆栈跟踪?
甚至有关于它的FAQ 问题,但至少可以说,它不是很有用.
目前,在每个错误中我都这样做:
def errback(value):
import traceback
trace = traceback.format_exc()
# rest of the errback...
Run Code Online (Sandbox Code Playgroud)
但这感觉很笨重,还有更好的方法吗?
为了回应Jean-Paul的回答,我尝试运行以下代码(使用Twisted 11.1和12.0):
from twisted.internet.endpoints import TCP4ClientEndpoint
from twisted.internet import protocol, reactor
class Broken(protocol.Protocol):
def connectionMade(self):
buggy_user_code()
e = TCP4ClientEndpoint(reactor, "127.0.0.1", 22)
f = protocol.Factory()
f.protocol = Broken
e.connect(f)
reactor.run()
Run Code Online (Sandbox Code Playgroud)
运行后,它只是挂在那里,所以我必须按Ctrl-C它:
> python2.7 tx-example.py
^CUnhandled error in Deferred:
Unhandled Error
Traceback (most recent call last):
Failure: twisted.internet.error.ConnectionRefusedError: Connection was refused by other side: 111: Connection refused.
Run Code Online (Sandbox Code Playgroud) 正如标题所说,ProcessProtocol类上的这两个函数之间有什么区别?如果应该使用一个文件而不是另一个文档,那么文档有点稀疏?
最好是,我正在寻找一些用例来证明这一点.
我在AngularJS服务中包装一个慢的WebSockets服务器,然后从我的控制器调用该服务.如果我将回调链接到回调到回调,一切正常,任何UI异步更新.
当我尝试用来$q.defer()清理那些混乱的回调时,似乎我的延迟永远不会被调用.我熟悉Python扭曲的延迟概念,所以我认为概念上一切都应该有效 - 但事实并非如此.
这是我能想到的最短的例子,使用setTimeout函数模拟慢速WebSockets服务器.
<!doctype html>
<html ng-app="beta">
<head>
<title>Beta</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.min.js"></script>
<script>
var beta = angular.module('beta', []);
var BetaCtrl = function ($scope, betaServ) {
$scope.button = function () {
serv_result = betaServ.slow();
console.log(serv_result);
serv_result.then(function (result) {
console.log('callback finished');
});
}
}
beta.service('betaServ', function($q) {
this.slow = function () {
d = $q.defer()
setTimeout(function () {
console.log('before resolve');
d.resolve();
console.log('after resolve');
}, 2000);
return d.promise;
}
});
</script>
</head>
<body>
<div ng-controller="BetaCtrl">
<button …Run Code Online (Sandbox Code Playgroud) 有没有更好的方法同时插入和扩展列表?这是我目前正在做的一个丑陋的例子.(假设我想在'2'元素之后插入'2.4'和'2.6'):
>>> a = ['1', '2', '3', '4']
>>> b = a[:a.index('2')+1] + ['2.4', '2.6'] + a[a.index('2'):]
>>> b
<<< ['1', '2', '2.4', '2.6', '3', '4']
Run Code Online (Sandbox Code Playgroud) 我正在玩Clojure(1.6)和JavaFX 8,一开始我遇到了问题.例如,这个非常简单的代码失败了:
(ns xxyyzz.core)
(gen-class :name "xxyyzz.core.App"
:extends javafx.application.Application
:prefix "app-")
(defn app-start [app stage]
(let [button (javafx.scene.control.Button.)]))
(defn launch []
(javafx.application.Application/launch xxyyzz.core.App (into-array String [])))
(defn -main []
(launch))
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪的最后一部分似乎相关:
Caused by: java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:340)
at clojure.lang.RT.classForName(RT.java:2070)
at clojure.lang.Compiler$HostExpr.maybeClass(Compiler.java:969)
at clojure.lang.Compiler$HostExpr.access$400(Compiler.java:747)
at clojure.lang.Compiler$NewExpr$Parser.parse(Compiler.java:2494)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560)
... 48 more
Caused by: java.lang.IllegalStateException: Toolkit not initialized
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:276)
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:271)
at com.sun.javafx.application.PlatformImpl.setPlatformUserAgentStylesheet(PlatformImpl.java:562)
at com.sun.javafx.application.PlatformImpl.setDefaultPlatformUserAgentStylesheet(PlatformImpl.java:524)
at javafx.scene.control.Control.<clinit>(Control.java:81)
... 55 more
Run Code Online (Sandbox Code Playgroud)
我根本不会说Java,但研究它似乎问题在于Clojure及其导入Java类的方式.如果我理解正确,在导入时它会运行类静态初始化程序,并且对于某些Button崩溃的JavaFX类(在我的例子中).
猜猜我有两个问题:我对这个错误的理解是否正确?第二,有办法以某种方式解决这个问题吗?我尝试在(ns)声明中提取函数内部的导入,但它仍然不起作用.
如果没有Clojure修复,是否可以通过一些额外的Java代码修复?
欢迎任何提示和指示!
我想知道CSS是否可以实现以下功能:
我说起来并不难,但是它的行为应与本页面中的图像相似,但应该一直向下到一列,而不是立即从三列跳到六列。
我知道我可以使用Javascript来完成此操作,就像在上面的链接中一样,可以通过@media查询(使用很多手动调整列宽来完成),但是我想知道是否有办法仅在CSS中做到这一点,并让浏览器为我完成工作?
谢谢。
例如,假设我想用单个标记元素 double star 解析大部分非结构化文本**。这是我的 ANTLR 语法:
text : (plain | tag)+ ;
plain : ~(TAG) ;
tag : TAG tag_inner TAG ;
tag_inner : ~(TAG) ;
TAG : '**' ;
TEXT : ('a'..'z' | ' ' | '.')+ ;
Run Code Online (Sandbox Code Playgroud)
如果我解析的文本在语法上是正确的,那么这个语法就可以正常工作,也就是说,每个开头**都有一个结尾**。如果有奇数个**s,则 ANTLR 会抱怨并出错。
如何解决这个问题,以便 ANTLR 会提前寻找关闭的双星,如果没有人将那颗孤独的双星视为纯文本?我很确定 ANTLR 可以做到这一点,并且句法/语义谓词就是答案,但是在我们花了大量时间阅读文档之后,我仍然无法解决。
当评估这个超级简单的core.match表达式时,我得到:
(match [(class "3.14")]
[Integer] "Integer"
[Double] "Doubler")
; => "Integer"
Run Code Online (Sandbox Code Playgroud)
这怎么可能是正确的,我错过了关于core.match的基本内容吗?在此表单上执行macroexpand-1可以让我:
=> (clojure.core/let [ocr-2751 (class "3.14")] (clojure.core/let [Integer ocr-2751] "Integer"))
Run Code Online (Sandbox Code Playgroud)
任何指针赞赏.
我有一个目录,让我们把它称为Storage包含笨拙名字的包mypackage-xxyyzzww,当然Storage是我的PYTHONPATH.由于包具有很长的不可知名称,因此所有包都符号链接到更友好的名称,例如mypackage.
现在,我不想依靠文件系统的符号链接要做到这一点,而不是我试图与周围碴sys.path和sys.modules.目前我正在做这样的事情:
import imp
imp.load_package('mypackage', 'Storage/mypackage-xxyyzzww')
Run Code Online (Sandbox Code Playgroud)
以这种方式做事有多糟糕,未来有可能会破裂吗?有趣的是,imp.load_package文档中甚至没有提及函数.
编辑:除了不依赖于符号链接,我不能再使用PYTHONPATH变量了.
这是一个非常简单的Leiningen项目示例lein new app hanging,仅使用两个文件project.clj:
(defproject hanging "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.6.0"]]
:main hanging.core
:aot [hanging.core]
:target-path "target/%s"
:profiles {:uberjar {:aot :all}})
Run Code Online (Sandbox Code Playgroud)
并且src/hanging/core.clj:
(ns hanging.core (:gen-class))
(println "1")
(def problematic (future))
(println "2")
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println 3))
Run Code Online (Sandbox Code Playgroud)
在运行项目时,这是输出(提示冻结,我必须用Cc杀死它):
% lein clean && lein run
Compiling hanging.core
1
2
Run Code Online (Sandbox Code Playgroud)
注释掉problematicVar定义后,这是输出(JVM关闭):
% lein clean && lein run
Compiling hanging.core
1
2
1
2
3
Run Code Online (Sandbox Code Playgroud)
我猜AOT是罪魁祸首,但有人可以解释一下究竟发生了什么吗?
我对第二个(注释)版本没有问题:在AOT期间,编译器执行所有顶级表单,这就是输出中看到两次1和2的原因. …
假设我正在编写一种数据类型来表示笛卡尔坐标系中的坐标.我想在该数据类型上定义函数并使用Haskell类型检查来防止将位于x轴上的数字与y轴上的数字混合.
这是数据类型定义,具有跟踪坐标轴的幻像类型和构造值的两个函数:
data X
data Y
newtype Coordinate axis = Coordinate Int64 deriving (Show)
newX :: Int64 -> Coordinate X
newX = Coordinate
newY :: Int64 -> Coordinate Y
newY = Coordinate
Run Code Online (Sandbox Code Playgroud)
让我们定义一个滑动函数,通过Int值或另一个Coordinate值滑动坐标.在第一种情况下,坐标应保持其轴,在第二种情况下,两个参数应具有相同的轴:
slideByInt :: Coordinate a -> Int64 -> Coordinate a
slideByInt (Coordinate x) y = Coordinate $ x + y
slideByCoord :: Coordinate a -> Coordinate a -> Coordinate a
slideByCoord (Coordinate x) (Coordinate y) = Coordinate (x + y)
Run Code Online (Sandbox Code Playgroud)
这一切都很有效,它可以防止我在操纵坐标的函数中混淆X轴和Y轴.
我的问题是:如何在类后面进行包装slideByInt和slideByCoord功能,以便我可以使用该slide函数.这编译: …