我注意到在Oracle中,查询
SELECT COUNT(*) FROM sometable;
Run Code Online (Sandbox Code Playgroud)
对于大型桌来说非常慢.它似乎是数据库,它实际上遍历每一行并一次递增一个计数器.我认为表中某处有一个计数器表有多少行.
因此,如果我想检查Oracle中表中的行数,那么最快的方法是什么?
我试图通过在Python中编写登录序列脚本来测试Web应用程序的功能,但我遇到了一些麻烦.
这是我需要做的事情:
现在,我对python相对较新,但到目前为止我测试过的两件事都没有用.首先我使用了httplib,putrequest()(传递URL中的参数)和putheader().这似乎没有遵循重定向.
然后我尝试了urllib和urllib2,将标题和参数作为dicts传递.这似乎返回登录页面,而不是我尝试登录的页面,我想这是因为缺少cookie或其他东西.
我错过了一些简单的事吗?
谢谢.
我有一个第三方库,主要包含大量的static(.a)库文件.我可以将它编译成单个.a库文件,但我真的需要它作为单个.so共享库文件.
有没有办法将静态.a文件转换为共享.so文件?或者更一般地说,有一种很好的方法可以将大量静态.a文件与一些.o目标文件合并到一个.so文件中?
我想知道如果在同一个对象上同步两次,在Java中我会得到任何奇怪的行为吗?
方案如下
pulbic class SillyClassName {
object moo;
...
public void method1(){
synchronized(moo)
{
....
method2();
....
}
}
public void method2(){
synchronized(moo)
{
doStuff();
}
}
}
Run Code Online (Sandbox Code Playgroud)
两种方法都使用该对象并在其上进行同步.第一种方法调用的第二种方法会因为它被锁定而停止吗?
我不这么认为,因为它是相同的线程,但我不确定可能发生的任何其他奇怪的结果.
一位同事最近编写了一个程序,其中他使用Python列表作为队列.换句话说,他.append(x)在需要插入物品时和.pop(0)需要移除物品时使用.
我知道Python有collections.deque,我正在试图弄清楚是否花费我(有限)的时间来重写这段代码来使用它.假设我们执行了数以百万计的追加和流行但从未有超过几千个条目,他的列表使用是否会成为一个问题?
特别是,Python列表实现使用的底层数组是否会无限增长,有数百万个点,即使列表只有一千个,或者Python最终会做一个realloc并释放一些内存?
这是一个死简单的网页,它使用jQuery泄漏IE8中的内存(我通过观察我的iexplore.exe进程的内存使用量在Windows任务管理器中随着时间的推移而检测到内存泄漏):
<html>
<head>
<title>Test Page</title>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<script type="text/javascript">
function resetContent() {
$("#content div").remove();
for(var i=0; i<10000; i++) {
$("#content").append("<div>Hello World!</div>");
}
setTimeout(resetTable, 2000);
}
$(resetContent);
</script>
<div id="content"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
显然即使在调用jQuery.remove()函数时我仍然会遇到一些内存泄漏.我可以编写自己的删除函数,不会发生内存泄漏,如下所示:
$.fn.removeWithoutLeaking = function() {
this.each(function(i,e){
if( e.parentNode )
e.parentNode.removeChild(e);
});
};
Run Code Online (Sandbox Code Playgroud)
这很好用,不泄漏任何内存.那为什么jQuery会泄漏内存呢?我创建了另一个基于的删除函数jQuery.remove(),这确实会导致泄漏:
$.fn.removeWithLeakage = function() {
this.each(function(i,e) {
$("*", e).add([e]).each(function(){
$.event.remove(this);
$.removeData(this);
});
if (e.parentNode)
e.parentNode.removeChild(e);
});
};
Run Code Online (Sandbox Code Playgroud)
有趣的是,内存泄漏似乎是由jQuery包含的每个调用引起的,以防止事件和与删除的DOM元素相关的数据的内存泄漏.当我调用该removeWithoutLeaking函数时,我的记忆会随着时间的推移而保持不变,但是当我打电话时removeWithLeakage它会继续增长.
我的问题是,每个电话怎么样
$("*", e).add([e]).each(function(){
$.event.remove(this);
$.removeData(this);
});
Run Code Online (Sandbox Code Playgroud)
可能是导致内存泄漏?
编辑:修复了代码中的拼写错误,经过重新测试,证明对结果没有影响. …
JavaScript有对象文字,例如
var p = {
name: "John Smith",
age: 23
}
Run Code Online (Sandbox Code Playgroud)
和.NET有匿名类型,例如
var p = new { Name = "John Smith", Age = 23}; // C#
Run Code Online (Sandbox Code Playgroud)
类似的东西可以通过(ab)使用命名参数在Python中模拟:
class literal(object):
def __init__(self, **kwargs):
for (k,v) in kwargs.iteritems():
self.__setattr__(k, v)
def __repr__(self):
return 'literal(%s)' % ', '.join('%s = %r' % i for i in sorted(self.__dict__.iteritems()))
def __str__(self):
return repr(self)
Run Code Online (Sandbox Code Playgroud)
用法:
p = literal(name = "John Smith", age = 23)
print p # prints: literal(age = 23, name = 'John Smith')
print p.name …Run Code Online (Sandbox Code Playgroud) SQLAlchemy的Query.distinct方法行为不一致:
>>> [tag.name for tag in session.query(Tag).all()]
[u'Male', u'Male', u'Ninja', u'Pirate']
>>> session.query(Tag).distinct(Tag.name).count()
4
>>> session.query(Tag.name).distinct().count()
3
Run Code Online (Sandbox Code Playgroud)
所以第二种形式给出了正确的结果,但第一种形式却没有.这似乎发生在SQLite中,但不适用于Postgres.我有一个函数,它传递一个查询对象来distinct应用一个子句,所以重写所有内容非常困难,最好使用上面的第二种方法.有什么明显的东西让我失踪吗?
考虑这种字典格式.
{'KEY1':{'name':'google','date':20100701,'downloads':0},
'KEY2':{'name':'chrome','date':20071010,'downloads':0},
'KEY3':{'name':'python','date':20100710,'downloads':100}}
Run Code Online (Sandbox Code Playgroud)
我希望首先按下载排序字典,然后按日期排序没有下载的所有项目.显然字典无法排序,我只需要一个可以迭代的按键排序列表.
['KEY3','KEY1','KEY2']
Run Code Online (Sandbox Code Playgroud)
我已经可以通过使用值对列表进行排序sorted,但是如何按第二个值排序?
最近我和一位同事讨论了C++并且遗憾地说,没有办法用类字段的名字取一个字符串并用该名称提取字段; 换句话说,它缺乏反思.他给了我一个莫名其妙的表情,并询问何时有人需要做这样的事情.
除了"嘿,我现在需要立即行动"之外,我的头脑中没有一个好的答案.所以我坐下来想出了一些我用各种语言反射实际完成的事情.不幸的是,我的大多数例子来自我在Python中的Web编程,我希望这里的人会有更多的例子.这是我提出的清单:
给定一个包含
x ="Hello World!" 等行的配置文件
y = 5.0
动态设置某个config对象的字段等于该文件中的值.(这是我希望我能用C++做的,但实际上做不到.)
排序对象列表时,根据配置文件或Web请求中属性名称的任意属性进行排序.
编写使用网络协议的软件时,反射允许您根据该协议的字符串值调用方法.例如,我编写了一个IRC机器人,它将转换
!some_command arg1 arg2
为方法调用actions.some_command(arg1, arg2)并打印返回IRC通道的任何函数.
当使用Python的__getattr__函数(类似于Ruby/Smalltalk中的method_missing)时,我正在使用一个包含大量统计信息的类,例如late_total.对于每个统计数据,我希望能够添加_percent以将该统计数据作为我计算的总数的百分比(例如,stats.late_total_percent).反思使这很容易.
那么这里的任何人都可以从他们自己的编程经验中给出任何反映有用的例子吗?下一次同事问我为什么"想要做那样的事情"我想做好准备.
python ×5
memory-leaks ×2
c ×1
count ×1
dictionary ×1
http ×1
java ×1
jquery ×1
linux ×1
list ×1
mutex ×1
oracle ×1
python-2.5 ×1
reflection ×1
sorting ×1
sqlalchemy ×1
sqlite ×1
urllib2 ×1