小编Jas*_*ker的帖子

SQL可移植性问题

我的公司让我为Oracle ORM完成Oracle的后端工作.令我惊讶的是,即使对于简单的东西,RDBMS也会有多么不同.我已经学到了很多关于Oracle和其他RDBMS之间差异的知识.出于纯粹的好奇心,我想了解更多.

在将SQL从一个平台移植到另一个平台方面有哪些常见的"问题"?

请,每个答案只有一个问题.

sql database orm portability rdbms-agnostic

9
推荐指数
1
解决办法
1145
查看次数

以编程方式编辑Python源代码

这是我认为非常有用的东西.基本上,我希望有一种方法可以编程方式编辑Python源代码而无需人工干预.我想对此做几件事:

  1. 编辑使用源模块进行配置的Python应用程序的配置.

  2. 设置一个"模板",以便我可以动态自定义Python源文件.这样,我就可以在我正在开发的开源应用程序上设置一个"项目"系统,并允许自定义某些文件.

我本可以写一些可以自己做的东西,但我可以看到在细节中开辟了很多"魔鬼"类型的问题.目前有没有办法做到这一点,或者我只是要咬紧牙关并自己实施?

python file-io

8
推荐指数
1
解决办法
1105
查看次数

合并vs空字符串连接

我的同事是C#的新手,并不知道合并操作员.所以,我看到他写了一行代码:

string foo = "" + str;
Run Code Online (Sandbox Code Playgroud)

想法是,如果str为null,则此表达式将返回空字符串.当然,这可以改写为:

string foo = str ?? "";
Run Code Online (Sandbox Code Playgroud)

我觉得这会更具可读性.但这真的很重要吗?可读性的好处是否足以建议返回并使这些线看起来像第二个?或者这是我应该学会放手的事情之一(假设我的同事接受了未来最佳方式的教育)?

编辑:只是一个注释,我很欣赏效率评论,但这并没有真正用于任何性能至关重要的情况.因此,虽然这些信息很有趣,但并不一定是我认为重要的信息.

c# string concatenation coalesce

8
推荐指数
1
解决办法
3813
查看次数

图灵测试的替代品

所以我们在AI课程中学到了一些关于图灵测试的知识.这让我想到了它.我可以看到它的一些限制:

  1. 它仅限于某种背景.如果我不是在设计人工智能与人交谈怎么办?
  2. 它有利于人为地理性行事.例如,如果我正在设计一个AI来控制核导弹,我真的希望它能够扮演人类的角色吗?当然,这是一个极端的例子,但你明白了.
  3. 它可能受到不表明计算机可以人性思考的因素的影响.例如,假设我问2334*321是什么.我可以判断该设备是否是一台计算机,因为它可能会很快回答我,而人类则需要弄明白.解决方案?让电脑暂停.

现在,我确信图灵测试在确定机器智能方面仍然占有一席之地.但我认为它的范围相当有限.还有其他选择吗?就此而言,我认为它的局限性是错误的吗?

编辑:让我说清楚:我不是建议放弃图灵测试.我只是好奇是否有任何其他测试可以克服其局限性(可能会将其交易用于其他限制).

artificial-intelligence

8
推荐指数
2
解决办法
2118
查看次数

Oracle是否因错误而回滚事务?

这感觉就像一个愚蠢的问题,但我在Oracle事务管理概念指南中看到以下内容:

当发生以下任何情况时,交易结束:

用户发出不带SAVEPOINT子句的COMMIT或ROLLBACK语句.

用户运行DDL语句,例如CREATE,DROP,RENAME或ALTER.如果当前事务包含任何DML语句,Oracle首先提交事务,然后运行并将DDL语句作为新的单语句事务提交.

用户断开与Oracle的连接.当前事务已提交.

用户进程异常终止.当前事务将回滚.

我是否要解释最后一点意味着如果我发出一个有错误的查询,那么事务将被回滚?

sql oracle plsql transactions oracle10g

8
推荐指数
2
解决办法
2万
查看次数

我什么时候需要使用Bigarray?为什么?

关于Bigarray模块的文档有些模糊.它声明该模块中数组的目的是保存"大型数组",但它并没有真正定义"大型数组"的含义.什么时候我应该在常规阵列上使用Bigarray?是否有一定数量的元素,我应该使用Bigarray?它是成千上万?百万?十亿?

是什么让Bigarray更好地处理大数组?是什么让常规数组更好地处理...非大数组?

arrays ocaml

8
推荐指数
1
解决办法
976
查看次数

有没有办法在Python中创建一个类属性?

以下因某些原因无效:

>>> class foo(object):
...     @property
...     @classmethod
...     def bar(cls):
...             return "asdf"
... 
>>> foo.bar
<property object at 0x1da8d0>
>>> foo.bar + '\n'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'property' and 'str'
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,或者是我唯一可以采用某种元类技巧的替代方案?

python properties class class-method

8
推荐指数
1
解决办法
657
查看次数

如何确定适当的检查间隔?

我刚开始研究一个有一些CPU问题的龙卷风应用程序.随着时间的推移,CPU时间将单调增长,最大化CPU为100%.该系统目前设计为不阻止主线程.如果需要执行阻塞和异步驱动程序不可用的操作,它将生成另一个线程来执行阻塞操作.

因此,我们的主线程几乎完全是CPU绑定的,而且其他一些线程几乎完全是IO绑定的.从我读过的内容来看,这似乎是解决GIL问题的最佳方式.另外,我的分析表明我们花了很多时间等待信号(我假设是__semwait_signal在做什么),这与GIL在我有限的理解中会产生的影响是一致的.

如果我使用sys.setcheckinterval将检查间隔设置为300,则CPU增长将显着减慢.我想要确定的是我是否应该增加检查间隔,将其保持在300,或者是否需要增加检查间隔.毕竟,我注意到CPU性能变得更好,但我有点担心这会对系统的响应性产生负面影响.

当然,正确答案可能是我们需要重新考虑我们的架构以考虑GIL.但这不是可以立即完成的事情.那么如何确定短期内采取的适当行动?

python multithreading tornado gil

8
推荐指数
1
解决办法
642
查看次数

有没有理由在PyMem_Malloc上使用malloc?

我正在阅读Python C扩展中的内存管理文档,据我所知,似乎没有太多理由使用malloc而不是PyMem_Malloc.假设我想分配一个不暴露给Python源代码的数组,并将存储在一个将被垃圾收集的对象中.有什么理由可以使用malloc吗?

c python malloc python-c-extension

8
推荐指数
2
解决办法
3878
查看次数

发布GIL的成本是多少?

假设我有一个C扩展函数,它可以完全独立于Python解释器.有没有理由释放GIL?

例如,有没有理由不写这样的代码(除了可读性和避免微优化之类的问题 - 重要但与我的问题无关的事情)?

Py_BEGIN_ALLOW_THREADS
    a = 1 + 1;
Py_END_ALLOW_THREADS
Run Code Online (Sandbox Code Playgroud)

显然,这是一个简单的代码,其中性能可能无关紧要.但有没有任何表现理由不在这里发布GIL?或者只应发布GIL以获得更多CPU密集型代码?

python multithreading gil python-c-extension

8
推荐指数
1
解决办法
1464
查看次数