我的代码在很大程度上依赖于yaml来进行跨语言的序列化,并且在加速某些事情时,我注意到yaml与其他序列化方法(例如,pickle,json)相比非常慢.
所以真正让我感到震惊的是,当输出几乎相同时,json比yaml快得多.
>>> import yaml, cjson; d={'foo': {'bar': 1}}
>>> yaml.dump(d, Dumper=yaml.SafeDumper)
'foo: {bar: 1}\n'
>>> cjson.encode(d)
'{"foo": {"bar": 1}}'
>>> import yaml, cjson;
>>> timeit("yaml.dump(d, Dumper=yaml.SafeDumper)", setup="import yaml; d={'foo': {'bar': 1}}", number=10000)
44.506911039352417
>>> timeit("yaml.dump(d, Dumper=yaml.CSafeDumper)", setup="import yaml; d={'foo': {'bar': 1}}", number=10000)
16.852826118469238
>>> timeit("cjson.encode(d)", setup="import cjson; d={'foo': {'bar': 1}}", number=10000)
0.073784112930297852
Run Code Online (Sandbox Code Playgroud)
PyYaml的CSafeDumper和cjson都是用C语言编写的,所以这不是C和Python速度问题.我甚至添加了一些随机数据来查看cjson是否正在进行任何缓存,但它仍然比PyYaml快.我意识到yaml是json的超集,但是如此简单的输入,yaml序列化器怎么能慢2个数量级呢?
我正在为django使用apache + mod_wsgi.
并且所有css/js /图像都通过nginx
.
出于某种奇怪的原因,当其他人/朋友/同事尝试访问该网站时,jquery/css没有为他们加载,因此页面看起来混乱了.
我的html文件使用这样的代码 -
<link rel="stylesheet" type="text/css" href="http://x.x.x.x:8000/css/custom.css"/>
<script type="text/javascript" src="http://1x.x.x.x:8000/js/custom.js"></script>
Run Code Online (Sandbox Code Playgroud)
我的nginx配置sites-available
是这样的 -
server {
listen 8000;
server_name localhost;
access_log /var/log/nginx/aa8000.access.log;
error_log /var/log/nginx/aa8000.error.log;
location / {
index index.html index.htm;
}
location /static/ {
autoindex on;
root /opt/aa/webroot/;
}
}
Run Code Online (Sandbox Code Playgroud)
有一个目录/opt/aa/webroot/static/
已相应css
及js
目录.
奇怪的是,当我访问它们时页面显示正常.
我已经清除了我的缓存/等,但是从各种浏览器中我可以正常加载页面.
另外,我没有在nginx日志文件中看到404任何错误.
任何指针都会很棒.
我在Android 1.5中使用列表视图来显示图像旁边的图像和文本列表.我试图垂直居中文本,但文本位于行的顶部而不是居中.以下是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip">
<ImageView android:id="@+id/item_image" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:paddingRight="10dip"
android:src="@drawable/default_image" android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"/>
<TextView android:id="@+id/item_title"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@id/item_image"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
当我试图垂直居中文本时,我需要设置alignParentTop ="true"似乎很奇怪,但如果我不这样做,文本甚至都不显示.我究竟做错了什么?
我想在网上加一个加密的许可证列表,这样有效的用户就可以使用我的应用程序来获取该列表,并检查他们的许可证ID是否在列表中,这样就可以激活这些应用程序.我注意到一些方法生成加密字符串,如"M°+ {Î...",其中有很多奇怪的字符,我想知道哪种方法可以生成看起来像"dhjfjhf1232784dfjk"的常规字符?
坦率
我有一个在Business Intellegience Development Studio中内置的SSIS包,它同时指定了源数据库和目标数据库.现在我想使用一些变量来参数化数据库连接并在命令行中运行包.
我尝试用我的变量@ [User :: SourceDb]替换数据库名称和sql server实例.@ [User :: SourceHost],但无法连接到数据库.
是否可以对数据库进行参数化,并且我的变量用法有什么问题吗?提前致谢!
我正在尝试编写一个System.Media.SoundPlayer
使用waveOut...
API的替代品.当传递的文件/流完成播放时,此API会对我的SoundPlayer版本中的方法进行回调.
如果我创建一个表单范围的SoundPlayer实例并播放一些东西,一切正常,因为表单使对象保持活动状态,因此委托是活着的来接收回调.
如果我在这样的按钮点击事件中使用它:
SoundPlayer player = new SoundPlayer(@"C:\whatever.wav");
player.Play();
Run Code Online (Sandbox Code Playgroud)
...它在99%的时间内工作正常,但偶尔(并经常在文件很长的情况下)SoundPlayer对象在文件完成之前被垃圾收集,因此代理不再接收回调,我得到一个丑陋的错误.
我知道如何使用"固定"对象GCHandle.Alloc
,但只有当其他东西可以挂在手柄上时.对象是否有任何方法可以在内部固定自身,然后在一段时间(或完成播放)后取消固定?如果我尝试GCHandle.Alloc (this, GCHandleType.Pinned);
,我得到一个运行时异常"对象包含非原始或非blittable数据."
我是编程类概念的学生.该实验室由TA运营,今天在实验室中他给了我们一个简单的小程序来构建.它是一个可以通过添加繁殖的地方.无论如何,他让我们使用绝对来避免用底片打破前卫.我快速地将它掀起,然后和他争论了10分钟这是不好的数学.它是,4*-5不等于20,它等于-20.他说他真的不在乎这一点,而且无论如何都要让编程处理负面因素太难了.所以我的问题是如何解决这个问题.
这是我上交的编程:
#get user input of numbers as variables
numa, numb = input("please give 2 numbers to multiply seperated with a comma:")
#standing variables
total = 0
count = 0
#output the total
while (count< abs(numb)):
total = total + numa
count = count + 1
#testing statements
if (numa, numb <= 0):
print abs(total)
else:
print total
Run Code Online (Sandbox Code Playgroud)
我想做的没有绝对,但每次我输入负数我得到一个大胖子鹅.我知道有一些简单的方法可以做到,我找不到它.
我试图使用以下代码在IE中获取RGB背景颜色:
function getStyle(elem, name) {
// J/S Pro Techniques p136
if (elem.style[name]) {
return elem.style[name];
} else if (elem.currentStyle) {
return elem.currentStyle[name];
}
else if (document.defaultView && document.defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g, "-$1");
name = name.toLowerCase();
s = document.defaultView.getComputedStyle(elem, "");
return s && s.getPropertyValue(name);
} else {
return null;
}
}
var $b = $("<button>");
$b.css("backgroundColor", "ButtonFace");
$("body").append($b);
alert("button bg color is: "+ getStyle($b[0],"backgroundColor"));
//alerts 'buttonface'
Run Code Online (Sandbox Code Playgroud)
这不会像firefox那样返回rgb颜色值,它会返回'buttonface',这对我来说是无用的.
我仍然很新,所以请耐心等待我,我的问题并不意味着争论或讨论,但在一些阅读中,有些东西让我感到奇怪.
我假设当计算机速度慢且使用正确的变量类型时内存昂贵时,这比现在更加必要.现在人们似乎已经放松了一点,更容易找到记忆.例如,您可以在任何地方看到此示例代码:
for (int i = 0; i < length; i++)
Run Code Online (Sandbox Code Playgroud)
诠释?(-2,147,483,648到2,147,483,648)长度?不是字节(0-255)更好的选择?
所以我很好奇你的意见以及你认为最佳实践,我讨厌认为这只会因为首字母缩略词"int"对于初学者来说更直观......或者记忆力变得如此便宜以至于我们真的没有我们需要关注这些小事,因此我们应该长时间使用,以便我们可以确定所使用的任何其他数字/类型(在合理范围内)是否可以自动投射?
......或者我只是因为对这些事情的关注而感到愚蠢吗?
我知道这是一个非常简单的问题,但我不知道如何谷歌.
我能怎么做
print '<a href="%s">%s</a>' % (my_url)
Run Code Online (Sandbox Code Playgroud)
这样my_url
两次使用?我假设我必须"命名" %s
然后在params中使用dict,但我不确定正确的语法?
仅供参考,我知道我可以my_url
在参数中使用两次,但这不是重点:)