这真的看起来像我应该能在谷歌上找到的东西,但出于某种原因我无法做出正面或反面.有EDITOR环境变量,ipy_user_conf.py文件,ipythonrc文件,关于在服务器模式下运行gvim的一些奇怪的事情以及一些我无法解决的其他东西(可能是因为睡眠不足).
我可以遵循哪个指南,或者有人可以概述我需要采取的步骤?
我有一个很少得到错误值的变量.由于系统非常复杂,我无法跟踪值经过的所有代码路径 - 涉及多个线程,可以保存,然后从DB加载,依此类推.我将尝试使用代码图生成器来查看是否可以通过查看setter的调用方式来发现问题,可能还有其他一些技术.也许用一个跟踪地点和变化的类来包装值?我不确定这个问题是否足够明确,但我很感激遇到这种情况的人的意见.
[编辑]问题不容易重现,我无法在调试器中捕获它.我正在寻找静态分析或记录技术来帮助追踪问题.
[编辑2]为了让事情更清楚,我所说的值是一个时间戳,表示为64位长变量中Unix纪元(01/01/1970)的毫秒数.在某个未知点,该值的前32位被截断,产生完全不正确(和不可恢复)的时间戳.
[编辑3]好的,感谢您的一些建议以及几个小时的代码,我找到了罪魁祸首.通过将基于毫秒的时间戳除以1000并将其存储在int变量中,将基于毫秒的时间戳转换为基于秒的时间戳.在代码的稍后时刻,基于秒的时间戳(an int)乘以1000并存储到新long变量中.由于1000和第二个时间戳都是int值,因此乘法的结果在转换为long之前被截断.这是一个微妙的,感谢所有帮助过的人.
我使用的系统正在创建大量对象并一直对它们进行垃圾收集,这会导致堆消耗的锯齿状图形非常陡峭。我想知道正在生成哪些对象来调整代码,但我无法找到在垃圾收集开始时转储堆的方法。当我尝试随机通过 JConsole 手动启动 dumpHeap 时,我总是在 GC 完成运行后得到结果,并且没有得到任何有用的数据。
欢迎任何有关如何追踪过多临时对象创建的注释。
我们需要将数据库从MSSQL迁移到Oracle,我们有超过100个用PL/SQL TSQL 编写的存储过程.我知道这是一个很长的镜头,但有没有人成功使用自动迁移工具来完成这项工作?我在网上看过一些工具,但我无法判断他们处理各种代码的能力.任何个人经历都会有所帮助.
似乎withCallingHandlers实际上并没有捕获错误tryCatch,脚本仍然停止执行.
将代码段与tryCatch打印"之前"和"之后"的位置进行比较:
f1 <- function() {
cat("before tryCatch\n")
tryCatch({
stop("this is an error!")
},
error = function(cond) {
print(cond$message)
}
)
cat("after tryCatch\n")
}
Run Code Online (Sandbox Code Playgroud)
使用相同的片段withCallingHandlers不会打印"之后"并停止执行:
f2 <- function() {
cat("before tryCatch\n")
withCallingHandlers({
stop("this is an error!")
},
error = function(cond) {
print(cond$message)
}
)
cat("after tryCatch\n")
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
一些背景
我想用它withCallingHandlers来分析发生错误时的调用堆栈sys.calls().
据Advanced R说,应该是可能的:
在处理程序
withCallingHandlers()被称为在产生而在处理条件下的呼叫的上下文中tryCatch()被称为在的上下文中tryCatch().
我只是尝试用Jython(2.5.1)运行BeautifulSoup(3.1.0.1),我惊讶地发现它比CPython慢多少.使用CPython 解析页面(http://www.fixprotocol.org/specifications/fields/5000-5999)只需不到一秒钟(确切地说是0.844秒).使用Jython需要564秒 - 几乎是700倍.
谁能证实这个结果?Jython运行速度比CPython慢700倍似乎不合理.也许我的设置有问题.
[编辑]这是我用来测试它的代码(当然我下载了上面提到的HTML文件):
import time
from BeautifulSoup import BeautifulSoup
data = open("fix-5000-5999.html").read()
start = time.time()
soup = BeautifulSoup(data)
print time.time() - start
Run Code Online (Sandbox Code Playgroud) 让我从一些背景开始。
今天早上,我们的一位用户报告说,Testuff 的安装文件被 CA 防病毒软件报告为感染了病毒。确信这是误报,我在网上查看,发现另一个程序 (SpyBot) 的用户报告了同样的问题。
现在,对于实际问题。
假设防病毒软件正在文件中寻找特定的二进制签名,我想在两个文件中找到匹配的序列,并希望找到一种方法来调整安装脚本以防止出现该序列。
我在 Python 中尝试了以下方法,但它已经运行了很长时间,我想知道是否有更好或更快的方法。
from difflib import SequenceMatcher
spybot = open("spybotsd160.exe", "rb").read()
testuff = open("TestuffSetup.exe", "rb").read()
s = SequenceMatcher(None, spybot, testuff)
print s.find_longest_match(0, len(spybot), 0, len(testuff))
Run Code Online (Sandbox Code Playgroud)
有没有更好的 Python 或其他语言的库可以做到这一点?也欢迎采用完全不同的方法来解决这个问题。
我有一个简单的消息传递系统,其中定义了“对话”,“用户”和“消息”对象,如下所示:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
class Conversation(db.Model):
id = db.Column(db.Integer, primary_key=True)
class Message(db.Model):
id = db.Column(db.Integer, primary_key=True)
text = db.Column(db.String)
author = db.relationship('User')
conversation = db.relationship('Conversation', backref=db.backref('messages', lazy='dynamic'))
Run Code Online (Sandbox Code Playgroud)
我想让所有参与对话的用户。
在SQL中对我来说很容易:
select distinct users.*
from users inner join messages on messages.author_id = users.id
where messages.conversation_id = 1;
Run Code Online (Sandbox Code Playgroud)
但是我无法弄清楚如何使用SQLAlchemy的语法做到这一点,所以我不仅可以获取字段,还可以获取对象。理想情况下,我想将其实现为get_authors“对话”方法。
我正在为命令行界面寻找类似VNC的东西.具体来说,我希望能够与来自全国其他办事处的其他人共享ssh会话(通过Putty说).我们都能够在控制台中键入内容,并查看另一个人正在做什么(包括更复杂的事情,如vim和top).在我看来,对于这样的事情,完全图形化的VNC是一种过度杀伤力.有没有办法设置它?
python ×3
java ×2
antivirus ×1
binary ×1
command-line ×1
debugging ×1
diff ×1
ipython ×1
jython ×1
oracle ×1
performance ×1
plsql ×1
r ×1
sql ×1
sql-server ×1
sqlalchemy ×1
ssh ×1
t-sql ×1
vim ×1
windows ×1